抽象方法
概念:在子类中,有一些有共性的方法是可以抽象成父类中一个方法的,但是由于每个子类具体执行内容有差别,所以子类中其方法需要进行小的修改。在这种情况下,父类中不能确定具体的方法体,于是就将其定义为抽象方法。
格式:使用abstract关键字
public abstract 返回值类型 方法名(参数列表)
抽象方法只有声明没有方法体,不能被调用;
抽象方法不能用static、final、private关键字来修饰
抽象类
概念:抽象方法所在的类。只要该类中存在抽象方法,则该类必须声明为抽象类。
但是抽象类可以不包括任何抽象类,注意两者之间的逻辑
格式:使用abstract关键字
public abstract class 类名{}
例子:
public abstract class Lego(){
public abstract void LegoPrice();
}
注意点:由于类是“抽象”类,所以不能被实例化,即不能使用new创建对象。这是因为抽象类中可能包含了抽象方法,而抽象方法不一定定义了具体内容,所以无法使用。
如果想要调用抽象类,必须新建一个子类继承于该抽象类,然后才能实现抽象方法。例子如下:
public abstract class Lego(){
public abstract void LegoPrice();
}
class childLego extends Lego{
public void LegoPrice(){
System.out.println("你这个乐高多少钱?");
}
}
注意事项
-
抽象类不能实例化,即不能创建对象
-
抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
-
抽象类中可以有构造方法。该构造方法可以为创建的子类对象进行赋值
-
抽象类的子类要么重写抽象类中所有抽象方法,要么其本身也是一个抽象类