java 子类继承父类那些内容


当一个Java子类继承自一个父类时,它将继承以下内容:

  1. 父类的所有非私有成员变量:子类将拥有与父类相同的实例变量。
  2. 父类的所有非私有方法:子类可以通过继承调用父类中的方法,也可以在子类中重写这些方法来改变其行为。
  3. 父类的所有非私有构造方法:子类可以通过继承来创建父类的对象,并在子类中调用父类的构造方法。
  4. 父类的所有非私有内部类和接口:子类可以继承这些内部类和接口,并可以在子类中使用它们。
  5. 父类的公共和受保护方法和变量可以在子类中被访问,而私有方法和变量则无法被访问。

请注意,子类不会继承父类的构造方法,但是子类的构造方法可以调用父类的构造方法。此外,当父类和子类都定义了同名的方法时,子类中的方法将覆盖父类中的方法。

除了上述内容,子类还可以通过继承父类获得以下特性:

  1. 可以使用父类中的公共方法来实现子类中的某些方法,从而避免重复编写代码。
  2. 可以通过继承来扩展父类的功能,添加新的方法和属性。
  3. 可以使用父类的对象来访问父类的方法和属性。
  4. 可以使用父类的构造方法来初始化子类中继承的属性。
  5. 可以使用继承来实现多态性,即子类对象可以作为父类对象使用。

需要注意的是,当子类继承父类时,它也会继承父类中的所有缺陷和问题。如果父类中有设计上的问题,这些问题也会被继承到子类中。因此,在继承时需要仔细考虑,确保子类的设计不会受到父类的缺陷影响。

示例

以下是一个简单的Java代码示例,展示了一个子类如何继承父类的属性和方法:

//定义一个父类Person
class Person {
    public String name;
    public int age;

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

    public void sayHello() {
        System.out.println("Hello, my name is " + this.name);
    }
}

//定义一个子类Student,继承自Person
class Student extends Person {
    public String school;

    public Student(String name, int age, String school) {
        super(name, age);
        this.school = school;
    }

    public void study() {
        System.out.println(this.name + " is studying at " + this.school);
    }
}

//创建一个Student对象并调用其方法
public class Main {
    public static void main(String[] args) {
        Student student = new Student("Tom", 18, "Harvard");
        student.sayHello();
        student.study();
    }
}

在上面的示例中,Student类继承自Person类,因此可以访问Person类的属性和方法。Student类定义了一个新的属性school和一个新的方法study(),并且可以通过调用super()来调用父类的构造方法,初始化父类中的属性。在Main类中创建了一个Student对象,并且通过调用sayHello()study()方法来展示Student对象继承自Person对象的方法和属性。


原文链接:codingdict.net