抽象
- 抽象类
- 格式 class后面加上关键字abstract
- abstract class 类名
- 特点:不能直接实例化对象,通过多态的形式实现实例化 Animal a = new Animal();
- 可以有抽象 ,也可以有具体方法
- 有抽象方法的类必须定义为抽象类
- 抽象类中可以有抽象方法,也可以没有
abstract不能和哪些关键字共存
- private 冲突
- final 冲突
- static 无意义
成员特点:
成员变量
可以是变量 也可以是自定义的常量 final(不能被继承7)
构造方法
不是没有用,用于子类创建对象时访问父类的构造方法
成员方法
既可以是抽象方法 也可以是具体方法
抽象方法
修饰符 abstract,返回值类型,方法名(参数列表),没有方法体
具体方法:修饰符
返回值类型,方法名(参数列表){方法体}
猫狗案例
具体事物:猫,狗
共性:姓名,年龄,吃饭,睡觉
老师案例
具体事物:基础班老师,就业班老师
共性:姓名,年龄,讲课。
学生案例
具体事务:基础班学员,就业班学员
共性:姓名,年龄,班级,学习,吃饭
接口
接口特点
- 接口用关键字interface表示
- 格式:interface 接口名 {}
- 类实现接口用implements表示
- 格式:class 类名 implements 接口名 {}
接口不能实例化
- 那么,接口如何实例化呢?
- 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态。
接口的子类
- 要么是抽象类
- 要么重写接口中的所有抽象方法
成员变量
只能是常量
默认修饰符 public static final
构造方法
没有,因为接口主要是扩展功能的,而没有具体存在
成员方法
只能是抽象方法
默认修饰符 public abstract
例1