首先就要明白抽象类的定义?抽象方法的定义? 理解透彻之后我们在了解调用抽象类中的抽象方法
什么是抽象类?抽象类,是带有(abstract) 修饰的类,abstract修饰的类中不能用new创建对象(也就是“不能实例化”)
抽象类中只能是抽象方法吗?不是的,抽象类中的方法可以包含抽象方法,也可以是其他默认方法 例如:
Public abstract class Animal{//带有abstract修饰的类,就是抽象类//Student student = new Student();//在抽象类中是不能创建对象的} 什么是抽象方法?抽象方法,是在抽象类中,也是带有(abstract)修饰的方法(没有方法体),含有抽象方法的类一定是抽象类,例如;
Public abstract class Animal{public abstract void say();public abstract void eat();public abstract void sleep();//抽象方法没有方法体} 如何去调用抽象类中的抽象方法?调用抽象类中的抽象方法,可以用继承(extends)创建子类的方法,用子类去重写(必须要重写)父类的抽象方法,这样就可以调用抽象方法。例如:
Public class Dog extends Animal{public void say(){System.out.print("wang! wang! wang!");}}Public class Run{public start void main(String[] args){say();//经过extends的重写,可以去调用子类中的方法,以此,输出结果是:wang! wang! wang! }} 关于子类重写父类抽象方法的注意事项如果子类将父类的抽象方法全部都重写完毕,那么子类就可以实例化了,如果子类未能将父类的抽象方法全部重写,那么子类依旧是抽象类,所以必须将修饰符(abstract)加上,例如:
Public abstract class Cat extends Animal{public void say(){}//现在我们只重写了父类的一个方法并未将其所有的方法全部重写,所以子类仍然是抽象类}