面向对象之抽象abstract_Java9
01_抽象概述
- A:抽象类概述
- 抽象就是看不懂的
- B:抽象类特点
- a:抽象类和抽象方法必须用abstract关键字修饰
- abstract class 类名{}
- public abstract void eat();
- b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
- c:抽象类不能实例化,那么抽象类如何实例化呢?
- 按照多态的方式,由具体的子类实例化,其实也是多态的一种
- d:抽象类的子类
- 要么是抽象类
- 要么重写抽象类中的多有抽象方法
- a:抽象类和抽象方法必须用abstract关键字修饰
02_抽象类的成员特点
- A:抽象方法必须定义在抽象类中
- B:抽象类的成员特点
- a:成员变量:抽象类中可以定义变量,也可以常量,abstract不能修饰成员变量
- b:是否有构造方法:有
- c:成员方法:既可以是抽象的,也可以是非抽象的
- C:抽象类的成员方法特性:
- a:抽象方法,强制要求子类做重写
- b:非抽象方法,子类继承的事情,提高代码复用性
03_abstract不能和哪些关键字共存
- abstract不能和哪些关键字共存
- A: ablstract和static
- 被static修饰的方法没有方法体
- 被static修饰的可以用类名. 调用,但是类名.调用抽象方法没有意义
- B:abstract 和 final
- 被abstract修饰的方法强制子类重写
- 被final修饰的不让子类重写,它俩矛盾
- C:abstract 和 private
- 被abstract修饰的是为了让子类看到并强制重写
- 被private修饰的是不让子类访问,它俩是矛盾的
- A: ablstract和static