一、总结
1.使用extends关键字继承,eg: class Student extends Persion { ...};
2.Java编程规范中类的首字母大写,方法的首字母小写单词首字母代谢,eg: setYourName()
3.子类继承父类后可以重写(override)父类的成员方法。如果子类override了,子类中再调用就是调用自己的,若没有提供,调用的就是父类的。
4.对象实例化的时候,会先调用父类的构造函数,然后再调用子类的构造方法。若类没有定义构造方法,java编译器会帮你生成一个public的无参的什么都不做的构造方法。
若父类有多个构造函数,使用super()调用父类的无参构造函数,这个super()在子类的构造方法中是否显示的写出来无所谓。也可以在子类的构造函数中显式调用super()来调用父类的无参构造方法;
也可以用 super(参数描述) 来调用父类的有参数的构造函数。super()必须要在子类的构造函数的最开始处调用。
5.final关键字,final表示最终的
若使用final修饰一个类就表示它是一个最终的类,那么它就不能再有子类。 eg. final class A {...}
若使用final来修饰一个方法,就表示它是一个最终的方法,就不能再被复写。
若使用final修饰成员变量就表示它不能再被修改,就变成了常量。
6.继承的限制(父传子)
(1) 子类无法直接访问父类的privete属性.
(2) 子类无法访问父类的"绝招",比如父类将某个方法定位为privete的。
(3) 子类不能私吞祖传的东西,必须还要继续往下传。比如父类的public方法,子类将其重写成private的是不行的。也就是是子类可以复写,但是不能缩小其权限。
7.若父类中有一个private的函数,子类实现了一个同名的函数,这不是override,而是自己又重写写的一个函数。因为子类根本就看不见父类的这个方法。只不过刚好名字相同而已。
8.抽象类
作用:可以作为一个“模板”来规定子类必须实现的方法。抽象类不能实例化对象,用于继承。类前加abstract关键字修饰。
抽象方法:抽象方法需要加abstract修饰。若有子类继承这个抽象类的时候,子类中必须实现父类中的抽象方法。
<