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();
    }
}

测试结果截图:

  

 

如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

原文地址:https://www.cnblogs.com/aeon/p/9976969.html