Java中继承使用extends关键字,如:“class Student extends Person”。在Java中只允许单继承,不允许多重继承,也就是说一个子类只能有一个父类。但Java中允许多层继承。如果在子类中要使用父类中的内容,如调用父类的构造函数、属性或方法,那么需要使用super关键字。下面给出一个类继承及使用的例子:
class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } } class Student extends Person { String school; public Student() { super("张三", 25); //用super调用父类中的构造方法 } } public class TestPersonStudentDemo4 { public static void main(String args[]) { Student s = new Student(); s.school = "北京"; System.out.println("姓名:"+s.name+",年龄:"+s.age+",学校:"+s.school); } }
在上面的例子中,子类Student调用父类Person的构造函数,使用的就是super关键字。之外,上面的例子中还使用到了this关键字。这两个关键字的使用对比如下:
Java中“复写”的概念与“重载”相似,它们均是Java“多态”的技术之一,所谓“重载”,即是方法名称相同(参数不同),但却可在不同的场合做不同的事。当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法复写了父类中的方法。同理,如果子类中重复定义了父类中已有的属性,则称此子类中的属性复写了父类中的属性。注意:子类复写父类中的方法时,子类复写的方法不能拥有比父类中此方法更严格的访问权限(子类复写父类中的属性时无此限制)。