- 实例名
is 类名-->判断实例是否是 类返回值bool a
is Person 判断a是否为Person类型 - 格式化代码Ctrl+K+D
- 虚方法Virtual关键字,一个方法变为虚方法,在子类中便可以被重写,如果子类要重写用关键字override,调用子类对象有重写直接调用重写的方法,没重写直接调用父类的方法,这就是多态的体现
- 实现多态 父类名
实例名=new 子类名(); 父类类型指向子类类型 - string str=new
string(char[]); - 调用静态方法直接类名调用,不能通过对象调用,静态成员无需实例化
- 静态成员只有在程序退出时才释放资源,所以在程序运行时一直共享数据
- 静态类不能被实例化,所以根据需要来决定类是否定义为静态类
- 一般情况当一个类是工具类就定义为静态类,让用户调用方便,不需要直接实例化对象,并且静态类中不能定义非static变量属性
- 当类中只有部分成员或函数只能将全局的定义为static,需要实例化且不同的话之定义一部分为静态
- 静态类不能被继承,静态类程序只有程序退出时才释放资源,所以尽量定义静态方法而不去定义静态变量,静态属性
- 静态类的构造函数只能在第一次用静态类执行之前调用一次,以后都不在调用
- 关键件sealed密封类不能被继承,abstract抽象类不能被是实例化
- 里氏替换原则:父类替换子类 Person
p=new Chinese() 父类指向子类
继承一般使用原则,把子类当成父类来看,当需要一个父类对象可以使用子类对象代替,当需要一个子类对象给父类对象时错误的 - 程序的开放封闭原则:可以扩展,但是对修改封闭---->多态
- 父类对象
as 子类 父类转换为子类,不能转换则返回null - GetType()获取对象类型,GetType().BaseType获取类型的父类类型,GetType()是通过反射实现的费资源
- 抽象方法不能有任何实现方法体
abstract,而且必须在抽象类中,父类的抽象成员子类继承必须重写,除了子类也是抽象类 - 抽象类不能被实例化,抽象类的作用就是为了让其他类继承
- 抽象类不能实例化,但是可以赋值为null
时间: 2024-10-18 15:28:49