抽象类是指类被修饰符abstract修饰的类。抽象类不能够创建对象。
抽象方法是只有方法名,没有方法体,没有具体的实现。含有抽象方法的类一定是抽象类!
抽象方法是只有方法名,没有方法体,没有具体的实现。含有抽象方法的类一定是抽象类!
//抽象的动物类
public abstract class Animal {
//含抽象方法的类一定是抽象类。
public abstract void eat();//吃的抽象方法。
}
public abstract class Animal {
//含抽象方法的类一定是抽象类。
public abstract void eat();//吃的抽象方法。
}
在继承关系中,子类继承抽象的父类,如果在子类中没有实现父类的抽象方法,则子类一定是抽象的。如果子类实现了抽象父类的所有抽象方法,则子类可以是抽象的,也可以不是抽象的。抽象类不一定有抽象方法, 抽象方法所在的类一定是抽象类。
//父类
public abstract class Animal {
/*
* 含抽象方法的类一定是抽象类。
*/
public abstract void eat();//吃的抽象方法。
}
//没有实现父类抽象方法的子类
public abstract class Dog extends Animal{
/*包含抽象的方法的类一定是抽象的类。
*因为没有实现父类中吃的抽象方法,所以子类必须是抽象的。
*子类继承抽象的父类,如果没有对父类中抽象的方法进行重写,
*则子类中就会有一个隐含的没有重写的eat()抽象方法。
*即:public abstract void eat();
*/
public void voice(){
System.out.println("狗狗朝你叫!");
}
}
//实现父类抽象方法的子类
public class Dog extends Animal{
public void eat(){
System.out.println("狗狗吃饭啦!");
}
public void voice(){
System.out.println("狗狗朝你叫!");
}
}
public abstract class Animal {
/*
* 含抽象方法的类一定是抽象类。
*/
public abstract void eat();//吃的抽象方法。
}
//没有实现父类抽象方法的子类
public abstract class Dog extends Animal{
/*包含抽象的方法的类一定是抽象的类。
*因为没有实现父类中吃的抽象方法,所以子类必须是抽象的。
*子类继承抽象的父类,如果没有对父类中抽象的方法进行重写,
*则子类中就会有一个隐含的没有重写的eat()抽象方法。
*即:public abstract void eat();
*/
public void voice(){
System.out.println("狗狗朝你叫!");
}
}
//实现父类抽象方法的子类
public class Dog extends Animal{
public void eat(){
System.out.println("狗狗吃饭啦!");
}
public void voice(){
System.out.println("狗狗朝你叫!");
}
}