📅  最后修改于: 2023-12-03 15:02:06.884000             🧑  作者: Mango
继承是一种重要的面向对象编程(OOP)概念,在Java中,继承是实现代码重用并创建新类的一种方法。
继承提供了一种从一个类获取所有方法和属性的能力,并将它们应用于另一个类。继承的基本思想是,可以创建一个类,该类是现有类的子类,并从现有类继承方法和属性。
子类可以重写父类方法,从而改变其行为。例如,假设有一个名为Bird的类,它有一个名为fly的方法。可以继承Bird类,并创建一个名为Penguin的子类,该子类覆盖fly方法以实现只在水中游泳。
在Java中,继承通过使用关键字extends来实现。下面是一个简单的示例:
class ChildClass extends ParentClass{
// ChildClass继承了ParentClass中的所有属性和方法
// 子类可以重写方法,以改变其行为
}
下面是一个使用继承的Java示例:
class Animal {
// Animal类的属性和方法
}
class Dog extends Animal {
// Dog类继承Animal类的属性和方法
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.bark();
}
}
在上面的示例中,Dog类继承了Animal类,并使用bark方法扩展了其行为。
在继承中,子类可以重写其父类中定义的方法。子类需要使用与父类中定义的方法相同的名称,并且参数列表也必须相同。下面是一个简单的示例:
class Animal {
public void move() {
System.out.println("动物可以移动");
}
}
class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
}
public class TestDog {
public static void main(String args[]) {
Animal a = new Animal();
Dog b = new Dog();
a.move();
b.move();
}
}
在上面的示例中,子类Dog重写了其父类Animal中的move方法以改变其行为。
在子类中,可以使用super关键字来调用其父类的构造函数、属性和方法。下面是一个简单的示例:
class Animal {
String name;
Animal(String name) {
this.name = name;
}
public void display() {
System.out.println("我的名字是:" + name);
}
}
class Dog extends Animal {
String breed;
Dog(String name, String breed) {
super(name); // 调用父类Animal的构造函数
this.breed = breed;
}
public void display() {
super.display(); // 调用父类Animal的display方法
System.out.println("我的品种是:" + breed);
}
}
public class TestDog {
public static void main(String args[]) {
Dog d = new Dog("旺财", "土狗");
d.display();
}
}
在上面的示例中,子类Dog调用了其父类Animal的构造函数和display方法,并添加了自己的属性和方法。在子类的display方法中,使用了super.display()来调用其父类的display方法,并使用this.breed添加了一个新的输出行。
在Java中,继承是一种实现代码重用和创建派生类的方法。子类可以继承并覆盖父类中的属性和方法,或使用super关键字调用父类中的构造函数和方法。继承是一种强大的OOP概念,可以大大提高代码的复用性和可维护性。