一、多态
Java中的多态体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。
举个例子,一个Child类,继承与Father类,那么这个Child类的实现类,既可以赋值给一个Child类型的引用,也可以赋值给一个Fatcher类型的引用。
所以,多态的表现就是父类的引用指向的是子类对象。
多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。
在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。
二、抽象类
Java中定义抽象类用的关键字是abstract,抽象类是不可以实例化的。在Java中使用多态的时候,并不需要父类可以实例化,只需要子类可以实例化,也就是只需要子类对象。
由于抽象类只能被继承,子类必须重写父类的所有抽象方法,即使子类不需要,也必须重写。
三、接口
接口用关键字interface来定义,也可以将接口看作是抽象类的延伸,可看作纯粹的抽象类。
但是接口中的方法,子类可以选择性的实现。
四、接口与继承
Java中不允许多重继承,即不允许一个子类同时继承一个或多个父类(即同时extends多个类)。但是可以使用接口实现多个(即可以同时implements多个接口,同时实现多个接口)。
这就是多重继承。
多重继承语法:
*class 类名 implements 接口1,接口2,...,接口n *
1、一个类只能继承一个类:class A extends B{}