抽象类
1语法:用abstract修饰的类即为抽象类.
2特点:抽象类不能创建对象【不能实例化】 可以被继承!
抽象类中可能包含抽象成员(方法,属性)
【可以为空,可以没有抽象成员,可以有抽象成员】
虽然不能实例化自己
但是可以
作为数组存东西
什么时候需要使用抽象类
1》 希望做基类,对多个类进行统一管理【类将再分类】
2》 【使用抽象类的根本原因:
需求 分析时找角色找共性时
找的共性中 有字段;有方法,
方法中有些方法/有些行为,不同子类可能具体实现不同,
父类中的这个行为就
没必要实现!!
没必要实现!!
没必要实现!!
这个行为需要写成抽象的,从而这个类也要变成抽象类】
啰嗦的
抽象类表示一个抽象概念(数据和行为整体).
表达概念中拥有的共性行为数据.
用于做基类,统一所有子类,管理子类.
什么时候适合用抽象类
- 当你需要表示一个抽象概念时。
- 当你不希望类创建对象的时候【类 {子类}>对象】
- 当你有行为,但是不需要实现的时候
如果父类中提取共性的行为,不同子类可能具体实现不同,
父类中的这个行为就没必要实现!! - 当你有多个概念,需要一致的管理时
- 当你有一些行为,在做法上有多种可能时,
但又不希望客户了解具体做法。
抽象方法
1 定义:只有声明【定义】,没有实现的方法 就是抽象方法
有 【头】(签名) 无 【体】
2特点:实现类必须实现所有的抽象方法 B:A
抽象方法必须放在抽象类中或者接口中
3作用,用途,什么时候使用抽象方法:
表示的是抽象的行为,是行为的抽象【?】
【需求 分析时找角色找共性时
找到的方法/行为,不同子类可能具体实现不同,
这个行为需要写成抽象的】
4 放在抽象类中的抽象方法 必须 加abstract 不能私有
实现类实现抽象方法的方法 必须加 override 不能私有
不能标记成虚方法
子类也是抽象,不实现可以吗?可以!
父抽象 抽象方法,子类 实现为虚方法 不可以
注意:抽象方法的重写 =抽象方法的实现
【了解】
语法:
用abstract修饰并且没有实现的方法.只有方法声明,没有实现
抽象方法只能出现在抽象类中
抽象方法在本类中不实现,实现推迟到子类中,
子类必须重写实现或者为抽象继续给子类
语义:
抽象方法一个行为的抽象
抽象方法表达抽象行为,只关注本身,不关注行为实现