抽象类、抽象方法具体的定义和调用
如何调用抽象类中的抽象方法什么是抽象类?抽象类中只能是抽象方法吗?
什么是抽象方法?如何去调用抽象类中的抽象方法?关于子类重写父类抽象方法的注意事项
如何调用抽象类中的抽象方法
首先就要明白抽象类的定义?抽象方法的定义? 理解透彻之后我们在了解调用抽象类中的抽象方法
什么是抽象类?
抽象类,是带有(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(){
}
//现在我们只重写了父类的一个方法并未将其所有的方法全部重写,所以子类仍然是抽象类
}