多态: 1.前提是必须有继承关系。
2.要有方法重写。
3.父类引用指向子类对象。
4.父类无法访问子类特有功能抽象类(本质是在多态的基础上):
1.有抽象的方法称为抽象类。(*方法可以全部为抽象方法,也可一个抽象方法都没有)。
2.继承抽象类的类必须要有实现抽象类的抽象方法,否则,该类也为抽象类。
3.抽象类无法实例化,但是可以有构造方法,因为构造方法是为了成员变量的初始化,方便子类调用。
4.抽象方法是没有具体化的方法,是抽象的,无法确定方法的最终形态,所以无法加载。
5.抽象方法不可于static final private等关键字修饰。
static : 静态的,随着类的加载而加载,抽象方法是无法加载的。
final : 最终的 如果抽象方法被修饰,方法就不可被重写,继承的子类无法进行实现抽象方法。
private: 私有的 子类重写父类方法时,访问权限必须大于父类访问权限,抽象方法不能被重写。
6.变量:可有变量和常量。
方法:可有抽象和非抽象方法。
构造方法:可以有构造方法。
7.抽象类无法非抽象类,因为抽像类无法实例化。
8.使用方法:两个类在有类似的行为时,可以考虑使用抽象类。(就是多态,区别在与一个抽象,一个非抽象)接口: 1.interface 关键字修饰
2.用Implements来实现接口抽象方法,必须要实现接口所有的抽象方法。
3.类只能实现接口,而且可以实现多个接口。
4.接口可以继承接口,而且可以继承多个接口,但是实现接口的类必须要实现所有的方法(包括继承的接口)。
5.接口是一种规范,只能有常量,默认用public static final来修饰,因为任何类都可以来实现接口,
如果类要拿接口的变量来使用,那么变量是变化的,不利于使用者遵守规范和操作,变量最好为常量,更规范更方便维护,效率更高。
6.接口只能有抽象方法,而且不能有构造方法(因为所有变量都是常量),接口不能被实例化。
7.使用:类似于抽象类,两个类在有类似的行为时,定义抽象类。这种方式也可定义接口,都用于实现特定的行为。
|