C#编程继承多态与接口多态之抽象类与抽象方法
三、抽象类与抽象方法1.父类与子类的相互转换
代码改进:给 Cat 和 和 Dog 分别添加 Have(吃饭)方法
实现父类子类转化
当有多个子类,并将这些子类放到一个集合中时,这些子类的数据类型会自动变为父类类型。
所以在使用 foreach 时,()里集合中的类型是父类类型,在遍历时要判断集合中是哪个子类并强制转换。
若使用抽象类和抽象方法,就不用强制转换,系统虚拟机会自动识别。
2.抽象类与抽象方法
抽象类的定义与方法声明规范
使用“继承多态”机制解决扩展问题
抽象类的概念和使用要点
使用关键字“abstract”修饰的类,称为抽象类。
抽象类只是用来列举一个类所具有的行为,不能单独通过创建对象来使用。
如Animal animal=new Animal();是错误的。
抽象类中可以有抽象方法,也可以没有任何抽象方法。
抽象类不能是静态的(static )或密封的(sealed)。
抽象方法的概念和使用要点
在抽象类中使用“ abstract ” 修饰的方法,称为抽象方法。
抽象方法必须在抽象中定义,不能在普通类中使用。
抽象方法只是一个方法的声明,不能有任何方法体。
抽象方法仅仅表示一个应该具有的行为,具体实现由其子类实现。
抽象方法在子类中被实现(重写)必须使用关键字 override。
子类必须重写父类的所有抽象方法,除非子类本身也是抽象类。
页:
[1]