抽象类是用abstract关键字修饰的类,抽象方法是用abstract关键字修饰的方法
我们需要注意的是抽象类不能够实例化(既不能够new对象),抽象类的存在是为了继承,是为了形成多态机制,请看如下代码:
package Test.Test06;
public class Test06 {
public static void main(String args[]){
Animal human = new Person();
Animal chicken = new Chicken();
human.eat();
chicken.eat();
}
}
abstract class Animal{
public String name;
public int age;
Animal(){}
public abstract void eat();
}
class Person extends Animal{
Person(){
}
public void eat(){
System.out.println("人类使用餐具吃食物");
}
public void call(){
System.out.println("这个人正在打电话");
}
}
class Chicken extends Animal{
Chicken(){}
public void eat(){
System.out.println("鸡用嘴啄食物");
}
public void fly(){
System.out.println("这只野鸡正在飞");
}
}
我们使用父类对象指向子类型对象,只能够直接调用父类的方法;那我们如何调用call()方法及fly()方法呢,请看如下代码:
((Person)human).eat();
((Chicken)chicken).fly();