048_面向对象_21_抽象方法
一、概念部分
1)抽象方法:只声明了方法,同时使用了abstract修饰,没有方法体!必须要子类来重写!
2)抽象类:包含抽象方法的类(用abstract修饰)叫做抽象类。
抽象类中定义的抽象方法必须被子类实现、如果不实现,那么它的子类也应该是抽象的类。
二、抽象类的使用要点
1.通过抽象类,可以避免子类设计的随意性。因为抽象的方法必须被子类重写。
2.有抽象方法的类只能定义成抽象类
3.抽象类不能实例化,及不能用new来实例化抽象类。但是可以有自己的构造方法。
4.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
5.抽象类只能用来继承。
6.抽象方法必须被子类实现。这样就避免了子类设计的随意性
7.普通方法中可以调用抽象方法
三、演示示例
package edu.aeon.test; /** * [说明]:动物类 * * @author aeon * */ public abstract class Animal { String str; public abstract void run(); // 抽象方法的意义在于:将方法的设计和实现分离! public void breath() { System.out.println("呼吸!"); run(); //普通方法中可以调用抽象方法 } public Animal() { System.out.println("创造一个动物!"); } } class Cat extends Animal { public void run() { System.out.println("猫步小跑"); } } class Dog extends Animal { public void run() { System.out.println("狗跑"); } }
package edu.aeon.test; /** * [说明]:测试抽象类 * @author aeon * */ public class Test { public static void main(String[] args) { Animal a = new Cat(); a.breath(); } }
测试结果截图: