既然JAVA普通类中允许没有方法体的方法存在,那么还要抽象类有什么用
时间: 2024-05-28 08:13:30 浏览: 11
Java中的抽象类主要有两个作用:
1. 定义一些方法但不实现具体的功能,而是留给具体的子类去实现。这些方法通常是在基类中都需要有的,但是具体实现可能因为子类的不同而有所不同。这样,我们就可以将这些通用的方法放在抽象类中,让子类去继承并实现这些方法。
2. 定义抽象类可以限制类的实例化,只能被子类继承。这种限制可以使得程序更加灵活,可以通过定义抽象类来约束一些类的结构和组织方式。
因此,抽象类可以提供一些基础的实现,同时也可以为子类提供一些必要的结构和约束。抽象类与普通类相比,更加具有灵活性和可扩展性。
相关问题
Java抽象类中可以有普通方法吗
是的,在Java中,抽象类中可以有普通方法,也可以有抽象方法。
抽象类是一种特殊的类,它不能被实例化,只能被用作其他类的父类。在抽象类中,可以定义抽象方法,也可以定义普通方法。
抽象方法是一种没有实际内容的方法,它只有一个声明,没有方法体。抽象方法必须在抽象类中声明,并且必须在子类中实现。
普通方法是一种有实际内容的方法,它有一个声明和一个方法体。普通方法可以在抽象类中声明,也可以在子类中实现。
例如:
```
public abstract class Shape {
public abstract double getArea();
public double getPerimeter() {
// 实现
}
}
```
在这个例子中,Shape是一个抽象类,它包含了一个抽象方法getArea()和一个普通方法getPerimeter()。
为什么抽象类中没有抽象方法,也要有抽象类
抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类中可以包含抽象方法和非抽象方法,但是如果一个类中包含了抽象方法,那么这个类就必须被声明为抽象类。即使抽象类中没有抽象方法,也可以将其声明为抽象类,这是因为抽象类还有其他的特殊用途,比如限制类的实例化、提供默认实现等等。因此,抽象类中没有抽象方法也是有意义的。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)