【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(

2017-10-22  本文已影响0人  暖熊熊

接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方法。

1.抽象类是否可继承实体类 (concrete class)

答:抽象类是可以继承实体类,但前提是实体类必须有明确的构造函数。其实Object就是个实体类,Java的API文档里,每个抽象类的条目里都明确写着直接或间接继承自Object,所以这点是没有疑问的。关键在于实体类必须有明确的构造函数
如下:

public class A {
    public static void main(String[] args) {
        
    }
}

abstract class B extends A {
}

编译通过,也可以运行。这里没有写A的构造方法,那么为什么抽象类B依然可以继承实体类,这是因为系统默认为A写了无参的构造方法。
如果将A的构造方法,手动定义为private,那么B将无法继承自A,如下:

public class A {
    private A() {
    }

    public static void main(String[] args) {

    }
}

abstract class B extends A {
}

此时B就不能继承A。

2.抽象类中是否可以有静态的main方法?

可以
如下:

abstract class A{
    public static void main(String[] args) {
        System.out.println("hello");
    }
}

可以输出hello,说明抽象类可以有main方法。

总结:

抽象类:
抽象方法:
上一篇 下一篇

猜你喜欢

热点阅读