Java面试题:抽象类必须要有抽象方法吗?

本文将介绍“抽象类必须要有抽象方法吗?”面试题

不需要,抽象类不一定非要有抽象方法。

Java 语言中,用 abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性的集合,是包含零个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。

示例代码

(1)抽象类,可以不定义抽象方法

public abstract class MyAbstract {

    public void show(String message) {
        System.out.println(message);
    }

}

public class Demo extends MyAbstract {

    public static void main(String[] args) {
        Demo demo = new Demo();
        demo.show("Hello World");
    }

}

运行示例,输出如下:

Hello World

(2)内部抽象类,可以不定义抽象方法

public class Demo {

    public static void main(String[] args) {
        Demo demo = new Demo();
        BigTruck bigTruck = demo.new BigTruck();
        bigTruck.name();

        Bus bus = demo.new Bus();
        bus.name();
    }

    /** 汽车(一个抽象类,没有定义任何抽象方法) */
    abstract class Car {
        public void name() {}
    }

    /** 大卡车 */
    class BigTruck extends Car {
        @Override
        public void name() {
            System.out.println("大卡车");
        }
    }

    /** 公交车 */
    class Bus extends Car {
        @Override
        public void name() {
            System.out.println("公交车");
        }
    }
}

运行示例,输出如下:

大卡车
公交车
少壮不努力,老大徒悲伤。——汉乐府古辞《长歌行》
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号