如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法

抽象方法和抽象类的定义格式:

抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束

抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可

public abstract class Animal{
   public  abstract void eat();
   
}
  • 1.
  • 2.
  • 3.
  • 4.

抽象类中可以定义普通方法

使用:

1、不能直接创建抽象类对象

2、必须用一个子类继承抽象父类

3、子类必须覆盖重写抽象父类当中所有的抽象方法。否则,子类也得是一个抽象类。

覆盖重写(实现):子类去掉抽象方法中的abstract关键字,然后补上方法体大括号

4、创建子类对象进行使用。

public class Cat extends Animal{
   @override
   public void eat(){
       System.out.println("吃");
   }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
Cat cat=new Cat();
cat.eat();
  • 1.
  • 2.

注意:

1、抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的

2、写抽象类的子类时,可以用快捷键alt+回车自动补全抽象方法的框架

3、抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类

     只要保证抽象方法所在的类是抽象类即可。这样没有抽象方法的抽象类,也不能直接创建对象,在一些特殊的场景下有用途。