java类与继承-抽象类案例
时间: 2024-11-05 07:11:30 浏览: 3
Java面向对象(高级)- 抽象类与抽象方法(或abstract关键字)
在Java中,抽象类是一种特殊的类,它不能被实例化,主要是用来作为其他类的模板或基础。抽象类可以包含抽象方法,即没有具体实现的方法,声明为`abstract`关键字。当一个类包含至少一个抽象方法时,该类也自动变为抽象类。
举个例子:
```java
// 定义一个抽象的 Animal 抽象类
public abstract class Animal {
private String name;
// 构造函数
public Animal(String name) {
this.name = name;
}
// 抽象方法,没有具体实现
public abstract void makeSound();
// 具体方法,可以有实现
public void eat() {
System.out.println(name + " is eating.");
}
}
// 子类 Cat 实现 Animal 抽象类
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(name + " says meow.");
}
}
// 子类 Dog 类同理
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(name + " barks.");
}
}
```
在这个例子中,`Animal`是一个抽象类,它的`makeSound()`方法是抽象的。`Cat`和`Dog`两个子类都继承了`Animal`并实现了`makeSound()`方法。当我们创建这两个子类的对象并调用`makeSound()`方法时,会根据不同子类的实际实现发出不同的声音,体现了多态性。
阅读全文