📅  最后修改于: 2023-12-03 15:32:02.050000             🧑  作者: Mango
Java中的继承是指子类(派生类)继承父类(基类)的属性和方法的能力。这意味着子类可以使用父类中定义的任何公共、受保护或默认属性和方法,而无需重新编写它们。
Java中使用关键字extends
进行类的继承,语法如下:
class Subclass extends Superclass {
// 子类的属性和方法
}
其中,Subclass
是子类的名称,Superclass
是父类的名称。
Java中的继承中,子类可以访问父类的public和protected的变量和方法。如果父类的成员使用了private修饰,则子类无法访问。
另外,在子类中可以使用super关键字来调用父类的构造函数和成员方法。
当子类继承了一个父类,子类也可以重新定义父类中已有的方法。这个过程称为方法的覆盖(Override)。
子类覆盖父类中的方法,必须具有相同的名称、参数列表和返回类型。当一个子类对象调用一个方法时,它的方法被执行,而不是父类中的方法。
当子类没有显式地调用父类的构造函数时,Java会默认在子类的构造函数中调用父类中的无参构造函数。如果父类没有无参构造函数,则会编译错误。
如果子类显式地调用了父类的构造函数,Java就不会再提供默认的无参构造函数。
以下是一个简单的程序,演示了Java中的继承:
class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
public void sound() {
System.out.println("汪汪汪");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.sound(); // 动物发出声音
dog.sound(); // 汪汪汪
}
}
输出结果如下:
动物发出声音
汪汪汪
在上面的例子中,Animal
类是一个基类,Dog
类是继承自Animal
类的子类。
Animal
类中有一个公共方法sound()
,Dog
类中同样有一个名为sound()
的方法,利用方法的覆盖,当Dog
类对象调用sound()
方法时,将会执行Dog
类中的sound()
方法。
Java中的继承是指子类(派生类)继承父类(基类)的属性和方法的能力。子类可以使用父类中定义的任何公共、受保护或默认属性和方法,而无需重新编写它们。在子类中可以使用super关键字来调用父类的构造函数和成员方法。子类可以覆盖(Override)父类中的方法,并可调用父类的无参构造函数。