14.java面向对象:抽象类
- 抽象类
- 抽象类和抽象方法的特点
- 抽象类
- 抽象方法
- 抽象类如何创建对象?
- 父类,抽象类,动物
- 子类,Cat,重写父类中的eat抽象方法
- 演示类
- 注意事项
抽象类
抽象类的修饰符是abstract
//抽象类
public abstract class Cxl {//抽象方法public abstract void eat();
}
抽象类和抽象方法的特点
抽象类
抽象类里面不一定有抽象方法。抽象方法必须放在抽象类里面,即有抽象方法的类一定是抽象类
抽象方法
抽象方法没有方法体。抽象类不能直接创建对象,因为他不是具体的。即抽象类不能直接实例化。
抽象类如何创建对象?
我们可以创建一个子类来继承抽象类,并重写抽象方法,通过这种方法可以创建对象并调用重写后的方法,演示如下:
父类,抽象类,动物
package demo001;
//抽象类,动物
public abstract class Animal {//抽象方法eatpublic abstract void eat();public void sleep() {System.out.println("睡觉");}
}
子类,Cat,重写父类中的eat抽象方法
package demo001;
//猫类继承动物类
public class Cat extends Animal {//重写eat方法,猫吃鱼@Overridepublic void eat() {System.out.println("猫吃鱼");}}
演示类
package demo001;public class APP {public static void main(String[] args) {//创建动物类对象,具体为指向Cat类Animal c = new Cat();c.eat(); //猫吃鱼c.sleep(); //睡觉}}
注意事项
- 通过上面的事例,我们可以知道抽象类只能通过子类对象实例化,这叫抽象类多态
- 需要注意的是:如果抽象类中有多个抽象方法,子类必须重写所有抽象方法
- 还有一种情况,父类是抽象类,子类也是抽象类,这个时候就不需要写抽象方法。