抽象类(abstract)
-
abstract 修饰符可以用来修饰方法,也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。
-
抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。
-
抽象类,不能使用 new 关键字来创建对象,它是用来让子类继承的。
-
抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。
-
子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。
代码示例:
抽象类:Action
package cheng.oop.demo07;
// abstract 抽象类
public abstract class Action {
// abstract:抽象方法,只有方法名字,没有方法实现
public abstract void showInfo();
// 抽象类中可以写普通方法
public void printInfo() {
System.out.println("这是一个抽象类中的普通方法");
}
}
继承抽象类的子类:A
package cheng.oop.demo07;
// 继承了抽象类的子类,都必须要实现它没有实现的抽象方法,除非它的子类也声明为抽象类
public class A extends Action {
@Override
public void showInfo() {
}
}
-
拓展:抽象类有方法吗?
抽象类是有构造方法的,由IDE默认生成一个无参构造方法,可以显示写出,这个方法用来被子类调用,因为任何子类都必须调用父类的构造方法,才能完成初始化工作。