10_设计模式&继承&多态

  • 设计模式

    • 由前人总结的用来解决特定问题的解决方案
    • 单例模式
      • 在一个项目的不同模块中获取对象,获取到的是同一个对象
      • 代码
  • 继承
    • 概念:如果多个类中具有相同的字段和方法,可以把相同的部分提取出来,做成一个新的类;这个新的类被称作是父类/基类/超类,而那些多个具有相同属性和方法的类被称作为子类/派生类;他们之间的关系是子类继承父类;
    • 语法:子类类名 : 父类类型 { 子类类体 }
    • 特点:
      • 子类拥有父类中所有的字段、属性和方法
      • 构造方法不可以被继承
      • 一个类可以有多个子类,但是一个类只能由一个父类
      • 一个类在继承另外一个类的同时还可以被其他类继承
      • 在C#中左右的类都直接或者间接的继承自Object类
  • 继承中的构造方法
    • 注意事项

      • 一个子类对象在实例化之前,需要先实例化从父类继承的部分
      • 实例化父类部分,默认会使用父类中无参的构造方法
  • 访问权限修饰符
    • 可以用来修饰类、字段、属性和方法,用来描述被修饰的内容可访问的范围
    • public
      • 可以用来修饰类、字段、属性和方法;
      • 在整个解决方案生效;
    • internal
      • 可以用来修饰类、字段、属性和方法;
      • 在整个项目中生效;
      • 类的默认的访问权限是internal;
    • protected
      • 可以用来修饰字段、属性和方法;
      • 可以在当前类中访问,可以在子类中,子类的子类…中访问;
      • 甚至可以在跨项目的子类中访问;
    • private
      • 私有权限,可以用来修饰字段、属性和方法;
      • 只能在按当前类中访问;
      • 字段、属性和方法的默认访问权限就是private;
    • protected internal
      • 可以用来修饰字段、属性和方法;
      • 在当前项目中生效,在跨项目的子类中生效;
    • 注意事项
      • 1、父类的访问权限要大于等于子类的访问权限;
      • 2、在public权限的类中,如果某个字段或者方法使用到了非public权限的类型,那么程序会要求一定要将用到的这个类型改为public;
  • 多态初步
    • 向上转型:

      • 由子类类型转为父类类型
      • 是一个隐式转换,不需要额外的操作
      • 向上转型肯定会成功
      • 向上转型后的对象将不再能够使用子类中特有的字段属性和方法
    • 向下转型:
      • 由父类类型转为子类类型
      • 是一个显示转换,需要强制类型转换,推荐使用as
      • 向下转型不一定成功
        • 如果向下转型失败,则得到null
        • 在做向下转型前,一定要先用is判断下类型
      • 向下转型后的对象就可以使用子类中特有的字段属性和方法
    • 父类的引用可以指向子类的对象
    • 案例代码

C#学习笔记_10_设计模式&继承&多态的更多相关文章

  1. 学习笔记——python(继承)

    学习笔记(Python继承) 有几种叫法(父类-子类.基类-派生类)先拿代码演示一下: class father: def work(self): print("work>>&g ...

  2. HeadFirst学习笔记-1. 设计模式入门

    1.概念 在开始学习前,我们先了解一些概念,方便我们接下来的学习. OO基础 抽象 继承 多态 封装 OO原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 设计模式 设计模式(Desi ...

  3. java学习笔记6--类的继承、Object类

    接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...

  4. 《java JDK7 学习笔记》之继承与多态

    1.面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承.应该正确判断使用继承的时机及继承之后灵活的运用多态,才是学习继承时的重点. 2.程序代码重复在程序设计上,就是 ...

  5. Java学习笔记——封装、继承和多态

    先说说封装: 用new 一条狗来举个例子: public class Dog { //私有化字段 private String name; private int age; //无参构造 Dog(){ ...

  6. (C/C++学习笔记) 十八. 继承和多态

    十八. 继承和多态 ● 继承的概念 继承(inheritance): 以旧类为基础创建新类, 新类包含了旧类的数据成员和成员函数(除了构造函数和析构函数), 并且可以派生类中定义新成员. 形式: cl ...

  7. JavaSE 学习笔记03丨继承、接口、多态、内部类

    Chapter. 5 继承 继承作为面向对象的三大特征之一,它是多态的前提.它主要解决的问题是共性抽取. Java中的继承,是单继承.多级继承的. 已存在的类,被称为超类.基类.父类(parent c ...

  8. Java 学习笔记(7)——接口与多态

    上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...

  9. .net学习笔记--使用抽象方法实现多态

    在使用抽象方法实现多态之前,我们必须知道一些知识点: 1.抽象类不能被实例化: 2.抽象类可以包含非抽象成员,它们可以由其子类继承调用. 我们可以先创建一个Person的抽象类,代码如下: abstr ...

随机推荐

  1. 安卓dex 文件结构简要说明

    #ifndef _DEX_FILE_HELPER_ #define _DEX_FILE_HELPER_ //此文件仅仅是起帮助作用,帮助不太了解DexFile结构的了解一下DexFile相关结构,想更 ...

  2. 【POJ 2689】 Prime Distance

    [题目链接] http://poj.org/problem?id=2689 [算法] 我们知道,一个在区间[l,r]中的合数的最小质因子必然不超过sqrt(r) 那么,先暴力筛出1-50000中的质数 ...

  3. UVALive 4671 K-neighbor substrings 巧用FFT

    UVALive4671   K-neighbor substrings   给定一个两个字符串A和B B为模式串.问A中有多少不同子串与B的距离小于k 所谓距离就是不同位的个数. 由于字符串只包含a和 ...

  4. CF732 F Tourist Reform——边双连通分量

    题目:http://codeforces.com/contest/732/problem/F 首先把边双缩点,边双内部 dfs 一个顺序一定是可以从每个点走到边双内部所有点的,因为它是以环为基本单位: ...

  5. Complicated Expressions(表达式转换)

    http://poj.org/problem?id=1400 题意:给出一个表达式可能含有多余的括号,去掉多余的括号,输出它的最简形式. 思路:先将表达式转化成后缀式,因为后缀式不含括号,然后再转化成 ...

  6. List 序列化

    序列化list http://kchen.cnblogs.com/ 通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法 通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法 我们 ...

  7. phpStorm更新后配置svn无法使用

    phpStorm迎来新的更新,结果之前配置的svn竟然无法使用啦,快捷键一类也没有作用.各种查找解决方案,最后找到解决方案.点击File找到Settings,找到Plugins这个部分,这个部分是管理 ...

  8. Git学习之序

    最近在忙毕业论文的事,需要用NS2仿真,其中需要修改NS2的源码,故想藉此机会学习一下Git,方便代码的管理. 由于我在以前实习的时候接触过代码管理工具SVN,因此对代码管理的一些概念还是有的.如果从 ...

  9. Servlet访问路径的两种方式、Servlet生命周期特点、计算服务启动后的访问次数、Get请求、Post请求

    Servlet访问路径的两种方式: 1:注解 即在Servlet里写一个@WebServlet @WebServlet("/myServlet") 2:配置web.xml < ...

  10. linux命令(001) -- chkconfig

    一.准备知识 在说明chkconfig命令的用途之前,有必要先了解一下Linux系统中/etc/rc[0-6].d目录的用途. 众所周知,在Linux系统定义了7种不同的启动级别,这7种启动级别的含义 ...