抽象的概述:
将功能定义抽象,那么该类就是抽象类!
动物有很多,应该将动物类定义为一个抽象类;动物本身不是一个具体动物,
猫和狗具体的事物,猫和狗和吃的方法不一样,在动物类中把吃的这个方法,定义为抽象方法,那么这个类就必须定义为抽象类;
java针对将一个类定义为抽象———–>abstract:抽象的意思
抽象类的特点:
* 一个类中可以抽象方法.也可以有非抽象方法
抽象方法的格式:
* public abstract void method();
注意:抽象类不能直接实例化(创建对象)
关于抽象的代码练习:
//非抽象类
abstract class Animal2{
public void show(){} //非抽象方法
// public abstract void method(){} //有语句体的
//抽象方法
public abstract void eat();//空语句体!
public abstract void sleep();
}
//abstract class Cat extends Animal{
// public void eat(){
// System.out.println("猫吃鱼...");
// }
//}
class Cat2 extends Animal2{
@Override //方法重写
public void eat() {
System.out.println("猫吃鱼...");
}
@Override //方法重写
public void sleep() {
}
}
class Dog2 extends Animal2{
@Override
public void eat() {
System.out.println("狗吃骨头...");
}
@Override
public void sleep() {
}
}
public class AbstractDemo {
public static void main(String[] args) {
//创建动物类对象
// Animal a = new Animal();//抽象类不能直接实例化(创建对象)
//使用子类具体的功能,就需要创建子类对象
// Cat c = new Cat();
Animal2 a = new Cat2() ;//属于多态的第三个条件
a.eat();
}
}