请举个例子,解释Java中继承与多态的关系。
在Java中,继承和多态是面向对象编程的两个核心概念。
- 继承:继承是子类(派生类)获得父类(基类)属性和方法的一种方式。例如:
// 父类
class Animal {
void eat() {
System.out.println("Animal is eating");
}
}
// 子类
class Dog extends Animal {
// 重写父类的方法
@Override
void eat() {
System.out.println("Dog is eating");
}
}
- 多态:多态是同一个接口或抽象类,允许创建多种类型的对象。在Java中,多态主要通过方法的重写(Override)和方法的重载(Overload)来实现。
例如:
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 多态一:子类重写父类的方法
class Dog extends Animal {
@Override
public void eat() {
System.out.println("Dog is eating");
}
}
// 多态二:两个不同的接口,实现相同方法
interface FoodEater {
void eat();
}
class Dog implements Animal, FoodEater {
// 实现接口的方法
@Override
public void eat() {
System.out.println("Dog is eating");
}
}
在这个例子中,Dog类继承了Animal类,并重写了eat方法。这就实现了多态一:子类对父类方法的重写。
同时,Dog类还实现了FoodEater接口,再次重写了eat方法。这就实现了多态二:不同接口,实现相同方法。
还没有评论,来说两句吧...