zoukankan      html  css  js  c++  java
  • C#学习笔记_10_设计模式&继承&多态

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

    • 设计模式
      • 由前人总结的用来解决特定问题的解决方案
      • 单例模式
        • 在一个项目的不同模块中获取对象,获取到的是同一个对象
        • 代码
    • 继承
      • 概念:如果多个类中具有相同的字段和方法,可以把相同的部分提取出来,做成一个新的类;这个新的类被称作是父类/基类/超类,而那些多个具有相同属性和方法的类被称作为子类/派生类;他们之间的关系是子类继承父类;
      • 语法:子类类名 : 父类类型 { 子类类体 }
      • 特点:
        • 子类拥有父类中所有的字段、属性和方法
        • 构造方法不可以被继承
        • 一个类可以有多个子类,但是一个类只能由一个父类
        • 一个类在继承另外一个类的同时还可以被其他类继承
        • 在C#中左右的类都直接或者间接的继承自Object类
    • 继承中的构造方法
      • 注意事项
        • 一个子类对象在实例化之前,需要先实例化从父类继承的部分
        • 实例化父类部分,默认会使用父类中无参的构造方法
    • 访问权限修饰符
      • 可以用来修饰类、字段、属性和方法,用来描述被修饰的内容可访问的范围
      • public
        • 可以用来修饰类、字段、属性和方法;
        • 在整个解决方案生效;
      • internal
        • 可以用来修饰类、字段、属性和方法;
        • 在整个项目中生效;
        • 类的默认的访问权限是internal;
      • protected
        • 可以用来修饰字段、属性和方法;
        • 可以在当前类中访问,可以在子类中,子类的子类…中访问;
        • 甚至可以在跨项目的子类中访问;
      • private
        • 私有权限,可以用来修饰字段、属性和方法;
        • 只能在按当前类中访问;
        • 字段、属性和方法的默认访问权限就是private;
      • protected internal
        • 可以用来修饰字段、属性和方法;
        • 在当前项目中生效,在跨项目的子类中生效;
      • 注意事项
        • 1、父类的访问权限要大于等于子类的访问权限;
        • 2、在public权限的类中,如果某个字段或者方法使用到了非public权限的类型,那么程序会要求一定要将用到的这个类型改为public;
    • 多态初步
      • 向上转型:
        • 由子类类型转为父类类型
        • 是一个隐式转换,不需要额外的操作
        • 向上转型肯定会成功
        • 向上转型后的对象将不再能够使用子类中特有的字段属性和方法
      • 向下转型:
        • 由父类类型转为子类类型
        • 是一个显示转换,需要强制类型转换,推荐使用as
        • 向下转型不一定成功
          • 如果向下转型失败,则得到null
          • 在做向下转型前,一定要先用is判断下类型
        • 向下转型后的对象就可以使用子类中特有的字段属性和方法
      • 父类的引用可以指向子类的对象
      • 案例代码
  • 相关阅读:
    软件工程作业-结对实验
    软件工程实践作业2
    UNIX线程之间的关系
    c中计时的几种方法
    调试器工作原理(3):调试信息
    调试器工作原理(2):实现断点
    调试器工作原理(1):基础篇
    linux的终端,网络虚拟终端,伪终端(转)
    asterisk webrtc使用SIPML5初体验
    初次使用nodejs的问题
  • 原文地址:https://www.cnblogs.com/chriswong/p/10359329.html
Copyright © 2011-2022 走看看