java抽象类
时间: 2023-07-20 14:04:24 浏览: 45
Java中的抽象类是指不能被实例化的类,只能作为其他类的父类,用于继承。抽象类必须用 abstract 关键字修饰,其中可以包含抽象方法和非抽象方法。
抽象方法是指只有声明,没有实现的方法,必须用 abstract 关键字修饰。抽象方法只能存在于抽象类中,子类必须实现所有抽象方法才能被实例化。非抽象方法则是有实现的方法,在抽象类中可以有非抽象方法。
下面是一个抽象类的例子:
```
abstract class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public abstract void eat();
public void sleep() {
System.out.println(name + " is sleeping.");
}
}
```
在这个例子中,Animal 是一个抽象类,它有一个抽象方法 eat() 和一个非抽象方法 sleep()。eat() 方法没有实现,必须在 Animal 的子类中实现,而 sleep() 方法有实现,可以直接使用。
在 Animal 的子类中必须实现 eat() 方法:
```
class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void eat() {
System.out.println(name + " is eating bones.");
}
}
```
在这个例子中,Dog 是 Animal 的子类,必须实现 eat() 方法。可以看到,Dog 中的 eat() 方法有实现,因此它是一个非抽象方法。通过创建 Dog 的实例可以使用 Animal 中的 sleep() 方法:
```
Dog dog = new Dog("Wangcai");
dog.eat(); // 输出 "Wangcai is eating bones."
dog.sleep(); // 输出 "Wangcai is sleeping."
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)