Dotcpp  >  编程教程  >  Java子类与继承  >  Java abstract类和abstract方法

Java abstract类和abstract方法

点击打开在线编译器,边学边练

1. abstract类

我们把用关键字abstract修饰的类称作abstract类,即抽象类,例如:

abstract class A {
    …
}

2. abstract方法

我们把用关键字abstract修饰的方法称作abstract方法,即抽象方法,例如:

abstract int max(int x,int y);


注意:

1)对于abstract方法,只允许声明,不允许实现,即没有方法体,而且不允许使用final和abstract同时修饰一个方法或类,也不允许使用static修饰abstract方法,即abstract方法必须是实例方法。

2)abstract类中可以有abstract方法,也可以有非abstract方法,而非abstract类中不可以有abstract方法。


例如:A类中的max()方法是abstract方法,min()方法是普通方法(非abstract方法)。

abstract class A {
    abstract int max(int x,int y);
    int min(int x,int y) {
        return x<y?x:y;
    }
}


对于abstract类,不能使用new运算符创建该类的对象,如果一个非abstract类是某个abstract类的子类,那么它必须重写父类的抽象方法,并给出方法体,这也就是不允许使用final和abstract同时修饰一个方法或类的原因。


我们可以使用abstract类声明对象,尽管不能使用new运算符创建该对象,但是该对象可以成为其子类对象的上转型对象,这样该对象就可以调用子类重写的方法。


注意:abstract类可以没有abstract方法,如果一个abstract类是abstract类的子类,那么它既可以重写父类的abstract方法,也可以继承父类的abstract方法。



本文固定URL:https://www.dotcpp.com/course/780

上一课:

Java继承与多态

Java教程
第一章 Java入门
第二章 Java运算符和表达式
第三章 Java流程控制
第四章 Java类和对象
第五章 Java子类与继承
第六章 Java接口与实现
第七章 Java内部类与异常类
第八章 Java常用实用类
第九章 Java输入输出流
第十章 Java数组
Dotcpp在线编译      (登录可减少运行等待时间)