继承和多态
继承
通过extends关键字来实现。允许一个类(子类)从另一个类(父类)中继承属性和方法,子类重用父类的代码,实现代码的复用和扩展。
主要特点:
- 代码复用: 子类继承父类的属性和方法,无需重复编写相同的功能。
- 扩展性: 通过继承,可以为子类添加新的行为或重写父类的行为。
使用场景:
- 当多个类之间存在共同特征时,可以将这些共同特征抽象到一个父类中,子类继承父类。
- 当需要多现有类进行扩展时,可使用继承。
举个例子:

其中,猫类和狗类共同继承动物的方法,也就是具备共同属性和方法,如年龄,身体颜色等;它们也有自己的特征,比如猫的叫声和狗的叫声是不同的,这是它们各自的方法。猫和狗都是动物。
class Animal {
private int age;
private String color;
public void eat() {
System.out.println("正在吃饭");
}
}
class Dog extends Animal{
public void wangWang() {
System.out.println("汪汪叫");
}
}
class Cat extends Animal{
public void miaoMiao() {
System.out.println("喵喵叫");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
Cat cat = new Cat();
}
}
多态
同一个方法调用在不同的对象上可以有不同的实现方式,主要通过向上转型来实现。
主要特点:
- 统一性: 不同的类可以实现相同的方法,但行为可以不同。
- 灵活性: 在不改变代码的情况下,增加新代码。
实现方式:
通过方法重写,可以实现多态,多态通常和继承一起使用。
什么是方法重写呢?
重写也是覆盖,就是子类重写父类的方法,其中包括方法名,返回值,以及传参。我们通常使用@Override注解表示方法重写。
什么是向上转型?
也就是通过子类的构造方法来构造父类对象,实现覆盖的效果

代码示例:
class Animal {
void makeSound() {
System.out.println("动物在叫");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("狗在叫");
}
}
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("猫在叫");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.makeSound(); // 输出: 狗在叫
myCat.makeSound(); // 输出: 猫在叫
}
}
注意事项:
- 被final修饰的方法不能被重写,因为它不可被修改;

- 被static修饰的方法也不能被重写,因为它不属于对象;
![]()
- 多态要求方法必须被重写;
- 多态主要通过父类引用指向子类对象来实现(也就是向上转型)。
总结
- 继承:用于代码的复用和扩展,通过extends关键字来实现
- 多态:同一个方法调用在不同的对象上可以有不同的实现方式。通过方法重写来实现。
Java继承与多态的特点及实现
864

被折叠的 条评论
为什么被折叠?



