在 Java 中,**继承(Inheritance)**是通过 extends 关键字来实现的。子类可以继承父类的属性和方法,从而实现代码复用和扩展。
下面从基础到进阶给你讲清楚。
// 父类(超类)
class Animal {
String name;
void eat() {
System.out.println(name + "在吃东西");
}
}
// 子类(继承父类)
class Dog extends Animal {
void bark() {
System.out.println(name + "在汪汪叫");
}
}
使用:
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "小黑";
dog.eat(); // 继承自 Animal
dog.bark(); // Dog 自己的方法
}
}
⚠️ 构造方法不能被继承,但子类构造时会先调用父类构造方法。
class Animal {
Animal() {
System.out.println("Animal 构造");
}
}
class Dog extends Animal {
Dog() {
// 隐含 super();
System.out.println("Dog 构造");
}
}
class Animal {
Animal(String name) {
this.name = name;
}
String name;
}
class Dog extends Animal {
Dog() {
super("小狗");
}
}
子类可以重写父类方法:
class Animal {
void sound() {
System.out.println("动物叫");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("喵喵叫");
}
}
super 用于访问父类成员:
class Animal {
void show() {
System.out.println("Animal");
}
}
class Dog extends Animal {
void show() {
super.show(); // 调用父类方法
System.out.println("Dog");
}
}
class A {}
class B {}
// class C extends A, B {} ❌ 不允许
final class A {}
// class B extends A {} ❌
class A {
private int x;
}
abstract class Animal {
abstract void sound();
}
class Dog extends Animal {
void sound() {
System.out.println("汪汪");
}
}
extends(类与类)implements(类与接口,可多个)interface Runnable {
void run();
}
class Dog extends Animal implements Runnable {
public void run() {
System.out.println("狗在跑");
}
}
如果你愿意,可以告诉我:
我可以用更针对性的方式给你讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。