抽象类
一、什么是抽象类?
答:用abstract修饰的类为抽象类
二、抽象类有什么用?
答:可对多个类进行统一的管理,作为概念父类,不具体实现,相当于类的模板
三、什么时候适合用抽象类?
答:希望表示一个抽象概念,不希望创建对象、行为(方法,函数)不需要具体实现时,或对类进行管理。即将类再次分类
四、用C#实现抽象类
另外:抽象类的子类还可以是抽象类,只要是抽象类都不能具体实现(不能new)
五、抽象类的特点
1.不能创建对象,但可以被继承
2.类中可以没有成员,也可以有抽象成员(抽象方法)
抽象方法
一、什么是抽象方法?
答:在抽象类中用abstract修饰且没实现、只有声明的方法,方法的实现由子类负责(方法重写)
二、抽象方法有什么用?
答:表示一个多个对象的共有行为,提取共性,作为一个模板,为子类提供方法重写,在设计与分析项目时,可以有效构建一个基本框架
三、抽象方法重写的构成
在抽象类中定义被abstract修饰的抽象方法,并在该抽象类的子类中重写该抽象方法(必须用override修饰,且不能私有化)
四、用C#实现抽象方法重写
注意:定义抽象方法后,子类必须具体实现所有抽象类中的抽象方法
子类实现的方法不能是虚方法,但抽象方法重写可以再次被重写(相当于虚方法的作用)
当子类也是抽象类时,可以不用实现父类的抽象方法
五、抽象方法的特点
子类(抽象类除外)必须实现抽象父类的所有方法
抽象方法必须放在抽象类或接口中(接口后面讲)
六、总结
抽象方法是一个行为的抽象,只关注本身概念即能存在什么,不关注行为实现、不描述做什么,不描述怎么做,及不描述具体数值,抽象方法分两个部分,一个是定义端,一个是实现端,当有子类需要不同实现的行为(方法)时,不建议使用抽象方法