在我们定义某一个类的时候,往往会为这些类定义一些方法,这些方法用于描述该类的行为,都有具体的方法体。在发生继承时,父类只直到子类应该继承哪些方法,但是并不直到子类是如何实现这些方法的(重写)。
既然不知道子类时如何实现这些方法的,那么干脆就可以不用管,使用只有方法名,而没有实现方法的抽象方法。
抽象方法和抽象类:
- 必须用abstract修饰符来进行修饰,有抽象方法的类只能被定义为抽象类,抽象类里面可以没有抽象方法。
- 抽象方法必须没有方法体
- 抽象类不能被实例化
- 抽象类可以包含成员变量,方法(这里的方法时普通方法和抽象方法都可以)、构造器(用来让子类调用)、内部类等等。
示例:
抽象类shape,包含两个抽象方法
public abstract class shape {
{
System.out.println("初始化shape");
}
private String colour;
//定义一个计算周长的抽象方法
public abstract double getLength();
//定义一个返回形状的方法
public abstract String shape();
//构造器
public shape(){
System.out.println("shape的构造方法");
};
public