抽象类有抽象方法的一定是抽象类 抽象类不一定全是抽象方法 2抽象类不能创建抽象对象3
时间: 2024-12-24 20:09:39 浏览: 16
在Java中,抽象类是用来定义一组共享行为或特征的类,但它们可能包含抽象方法(没有具体实现的方法)以及非抽象方法(有具体实现的方法)。以下是对您提到的三个点的详细说明:
1. **抽象类有抽象方法的一定是抽象类**:确实如此。如果一个类至少有一个方法声明为`abstract`(即没有提供具体的实现),那么这个类就被标记为抽象类。抽象方法通常用`void`关键字声明,没有返回类型。
```java
abstract class Example {
abstract void abstractMethod();
}
```
2. **抽象类不一定全是抽象方法**:尽管名为"抽象",但抽象类也可以包含非抽象方法,这些方法是可以被子类直接调用的。例如:
```java
abstract class AnotherExample {
public int nonAbstractMethod() {
return 0;
}
}
```
在这里,`nonAbstractMethod`就是一个非抽象方法。
3. **抽象类不能创建抽象对象**:这是对的,因为抽象类不能实例化(new)。如果你想使用抽象类中的功能,你需要继承它并实现其所有的抽象方法,然后才能创建子类的对象。例如:
```java
class ConcreteChild extends AnotherExample {
@Override
void abstractMethod() {
// 实现抽象方法
}
public static void main(String[] args) {
ConcreteChild child = new ConcreteChild(); // 可以创建子类对象
}
}
```
在这个例子中,`ConcreteChild`继承了`AnotherExample`并实现了抽象方法后,就可以创建它的对象了。
阅读全文