继承:
1.子类包括超类中所有成员,但他不能访问超类中声明为private的成员
2.java只支持单重继承,但是java允许如下继承:
football继承playing ,playing继承ball
3.子类的构造方法中,java自动调用超类构造方法
方法的重写overide:
1.参数列表和返回值相同。发生在子类重写超类成员方法。
2.子类重写的方法,其访问权限不能比父类窄。父类中是public,子类中就不能是protected/默认/private
3.父类中某方法访问权限是private时,这个方法不能被重写,即使是重写的形式,也是另一个方法。
方法的重载overload:
1.发生在单个类之内,构造方法可以重载。
2.对权限没有要求,参数类型、返回值类型不同
abstract关键字:
1. abstract class A{...}
2.A是一个抽象方法,需要在子类中实现,不能被实例化为对象。
3.抽象类之间可以继承。
4.构造方法、静态方法、final修饰的方法不能用abstract修饰。
final关键字:
1.一个变量一旦初始化就不能被改变
2.引用变量来说就是指它的引用无法改变
3.final类不能被继承,final方法不允许被覆盖,重写
4.类不能同时被声明abstract和final
向上转型:
1.定义一个超类类型的引用指向一个子类的对象
2.超类类型的引用可以调用超类中定义的所有变量和方法,不能调用子类中有而超类中没有的~。
3.对于超类中定义的方法,如果子类中重写该方法,超类类型的引用会调用子类中的这个方法--这就是 “动态链接” --后期绑定。
4.Java中向上转型自动进行,而向下转型需要强制转换。
5.父类 c = new 父类();子类a;a = (父类)c;
6.java方法中除了声明为final和private的,都使用动态绑定。
7.java的虚拟方法表中包含java类中定义的所有成员方法,C++中只有需要动态绑定的方法(用virtual声明的。。
接口:
1.接口中的方法默认是public或 abstract(可省略)
2.接口中只能由public static 或final类型的成员变量(不能再修改了哟)
3.实现多个接口用逗号隔开:
class 一个类 implement 接口1,接口2{...}