Java类的继承、super关键字、复写

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“多态”的技术之一,所谓“重载”,即是方法名称相同(参数不同),但却可在不同的场合做不同的事。当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法复写了父类中的方法。同理,如果子类中重复定义了父类中已有的属性,则称此子类中的属性复写了父类中的属性。注意:子类复写父类中的方法时,子类复写的方法不能拥有比父类中此方法更严格的访问权限(子类复写父类中的属性时无此限制)。

posted @ 2014-11-28 10:51  鞋匠  阅读(810)  评论(0编辑  收藏  举报