抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束。public abstract void eat();
抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。
如何使用抽象类和抽象方法:
1. 不能直接创建new抽象类对象。
2. 必须用一个子类来继承抽象父类。
3. 子类必须覆盖重写抽象父类当中所有的抽象方法。
覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号。
4. 如果子类没有完全覆写父类的抽象方法,那么子类也是一个抽象类
5.创建子类对象进行使用。
public abstract class Animal { public abstract void eat(); public abstract void sleep(); } ===================== public abstract class Dog extends Animal{ //因为子类没有完全覆写父类的抽象方法,因为子类也是一个抽象类 @Override public void eat() { System.out.println("够吃骨头"); } } ============================= public class Goden extends Dog { @Override public void sleep() { System.out.println("金毛睡姿"); } public void talk(){ System.out.println("金毛叫"); } } ========================== public class TaiDi extends Dog{ @Override public void eat() { super.eat(); System.out.println("泰迪吃饭"); } @Override public void sleep() { System.out.println("泰迪睡姿"); } } ============================ public class DemoAbstract { public static void main(String[] args) { // Animal one =new Animal() //错误写法,抽象类不能实例化对象 Goden one= new Goden(); one.sleep();//金毛睡姿 one.talk(); //金毛叫 one.eat(); //狗吃骨头 TaiDi two= new TaiDi(); two.eat(); //狗吃骨头,泰迪吃饭 two.sleep(); //泰迪睡姿 } }