抽象方法:就是加上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(); //泰迪睡姿
}
}