以下是 extends
和 implements
在Java代码中的区别和示例:
示例1:使用 extends
实现类继承
// 定义一个父类 Animal
public class Animal {public void eat() {System.out.println("动物在吃东西");}public void sleep() {System.out.println("动物在睡觉");}
}// 定义一个子类 Dog 继承自 Animal 类
public class Dog extends Animal {// 子类重写了父类的 eat 方法@Overridepublic void eat() {System.out.println("狗正在吃骨头");}// 子类新增一个 bark 方法public void bark() {System.out.println("狗在叫");}
}// 使用时,Dog 类可以调用父类 Animal 的方法以及它自己的方法
public class Main {public static void main(String[] args) {Dog dog = new Dog();dog.eat(); // 输出 "狗正在吃骨头"dog.sleep(); // 输出 "动物在睡觉"(从 Animal 类继承)dog.bark(); // 输出 "狗在叫"}
}
示例2:使用 implements
实现接口
// 定义一个接口 Flyer,包含两个抽象方法
public interface Flyer {void takeOff();void land();
}// 定义一个类 Bird,实现 Flyer 接口
public class Bird implements Flyer {@Overridepublic void takeOff() {System.out.println("鸟儿起飞了");}@Overridepublic void land() {System.out.println("鸟儿降落了");}// Bird 类有自己的行为方法public void chirp() {System.out.println("鸟儿在鸣叫");}
}// 使用时,Bird 类作为 Flyer 接口的实现类,必须实现接口的所有方法
public class Main {public static void main(String[] args) {Bird bird = new Bird();bird.takeOff(); // 输出 "鸟儿起飞了"bird.land(); // 输出 "鸟儿降落了"bird.chirp(); // 输出 "鸟儿在鸣叫"}
}
通过以上示例可以看出:
- 当使用
extends
关键字时,子类 (Dog
) 继承了父类 (Animal
) 的属性和方法,并且可以重写父类的方法。 - 当使用
implements
关键字时,类 (Bird
) 必须提供接口 (Flyer
) 中所有声明方法的具体实现。同时,类还可以拥有自己的额外方法。