返回

揭秘Java中的类继承:理解父类与子类的奥秘

闲谈

一、子类继承父类的写法

子类继承父类的写法非常简单,只需要在子类声明中使用extends ,后跟父类的类名即可。例如,如果我们有一个父类Animal ,我们可以创建一个子类Dog 来继承Animal 的属性和方法:

class Animal {
    private String name;
    private int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

class Dog extends Animal {
    private String breed;

    public Dog(String name, int age, String breed) {
        super(name, age); // 调用父类的构造方法
        this.breed = breed;
    }

    public String getBreed() {
        return breed;
    }
}

在上面的代码中,Dog 类继承了Animal 类的所有属性和方法,并添加了新的属性breed 和新的方法getBreed()

二、子类与父类之间的关系

子类与父类之间存在着以下几种关系:

  • 父类可以有多个子类,但子类只能有一个父类。
  • 子类会继承父类的一些属性和方法,这些属性和方法称为继承的属性继承的方法
  • 子类在创建对象时,会先调用父类的构造方法,然后调用子类的构造方法。
  • 子类可以重写父类的方法,即子类可以定义一个与父类同名的方法,但方法体不同。

三、四大权限修饰符

四大权限修饰符publicprotecteddefaultprivate 可以控制继承的属性和方法的访问权限。

  • public :表示该属性或方法可以在任何地方被访问。
  • protected :表示该属性或方法只能在该类及其子类中被访问。
  • default :表示该属性或方法只能在该包及其子包中被访问。
  • private :表示该属性或方法只能在该类中被访问。

例如,在下面的代码中,name 属性是public 的,age 属性是protected 的,breed 属性是default 的,getName() 方法是public 的,getAge() 方法是protected 的,getBreed() 方法是default 的。

class Animal {
    public String name;
    protected int age;
    String breed; // default

    public String getName() {
        return name;
    }

    protected int getAge() {
        return age;
    }

    String getBreed() {
        return breed;
    }
}

class Dog extends Animal {
    private String color;

    public String getColor() {
        return color;
    }
}

在上面的代码中,Dog 类可以访问Animal 类的name 属性和getAge() 方法,但不能访问age 属性和getBreed() 方法。Dog 类还可以定义自己的私有属性color 和方法getColor()

结语

类继承是Java中面向对象编程的重要组成部分,它允许子类从父类继承属性和方法,并在此基础上进行扩展。通过了解子类继承父类的写法、子类与父类之间的关系以及四大权限修饰符,我们可以更好地理解Java中的类继承机制。