- 抽象类:当一个类的属性不足以描绘一个对象的时候,这个类就是抽象类。由于抽象类不包含实例对象,因此抽象类必须被继承。在Java中,抽象类表示的是一种继承的关系。一个类只能继承一个抽象类,而一个类却可以实现多个接口。
- 抽象方法: 使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。
- 抽象方法必须写在抽象类中, 包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。
- 內部类:类中包含类,有局限,外部类不可见。內部类可以直接访问外部类和private是因为內部类中有个隐式引用指向外部类
- 匿名內部类:--------------------------------简化代码
--若想创建一个派生类的对象,并且对象只能被创建一次,就可以做成匿名內部类
--匿名內部类默认外部类的变量为final,可以访问但不能修改
--有独立的.class文件
- 接口:一种引用数据类型,只能包含抽象方法和常量,不能包含实例方法和变量,接口不能被实例化(new)。
- 接口需要被实现继承的,实现类/派生类
--必须重写所有抽象方法
--一个类可以实现多个接口,用逗号分隔,若又继承又实现应该先继承后实现。
- 关系:l
类和类------------------------继承extend
接口和接口————————————继承extend
接口和类-------------------------------实现impelements
- 设计规则:
- 所有派生类的属性和行为,抽到超类中----------抽共性
- 若对象的行为都一样,设计为普通方法、
- 若对象的行为不一样,设计为抽象方法
- 部分派生类所共有的属性和行为,抽到接口中。
- 接口是对继承的单根性扩展————————实现多继承
多态:同一类型的引用指向不同的对象时,有不同的实现----------------所有抽象方法都是多态的
------行为的多态:同一对象造型为不同类型时,有不同的功能,所有对象都是多态的。
-----对象的多态: