java抽象类和抽象方法
时间: 2023-06-13 08:04:24 浏览: 108
在Java中,抽象类是一种特殊的类,不能被实例化,只能被继承。抽象类通常用来表示一种抽象的概念,它包含了一些抽象方法和具体方法。
抽象方法是一种没有实现的方法,它只是一个方法声明,没有方法体。抽象方法的声明以关键字"abstract"开头,而且必须在抽象类中声明。一个抽象类可以包含多个抽象方法和具体方法。
抽象类和抽象方法的主要作用是为了让子类去实现,在子类中重写抽象方法并实现其具体功能。这样做可以让子类具有多态性,从而更好地实现程序的扩展性和可维护性。
下面是一个示例代码,展示了如何定义抽象类和抽象方法:
```
// 定义一个抽象类Animal
abstract class Animal {
// 定义一个抽象方法eat
public abstract void eat();
// 定义一个具体方法sleep
public void sleep() {
System.out.println("睡觉");
}
}
// 定义一个子类Cat,继承自Animal
class Cat extends Animal {
// 重写抽象方法eat
public void eat() {
System.out.println("吃鱼");
}
}
// 定义一个子类Dog,继承自Animal
class Dog extends Animal {
// 重写抽象方法eat
public void eat() {
System.out.println("吃骨头");
}
// 重写具体方法sleep
public void sleep() {
System.out.println("趴着睡觉");
}
}
// 测试代码
public class AbstractDemo {
public static void main(String[] args) {
Animal cat = new Cat();
cat.eat();
cat.sleep();
Animal dog = new Dog();
dog.eat();
dog.sleep();
}
}
```
输出结果:
```
吃鱼
睡觉
吃骨头
趴着睡觉
```
从输出结果可以看出,Cat和Dog都继承了Animal类,并重写了它的抽象方法eat。同时,Dog还重写了具体方法sleep。在主函数中,我们分别创建了一个Cat和Dog的实例,并调用了它们的eat和sleep方法,实现了多态性。
阅读全文