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

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

作者: 暖熊熊 | 来源:发表于2017-10-22 16:49 被阅读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方法。

总结:

抽象类:
  • 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
  • 一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。
  • 抽象类可以包含抽象方法和非抽象方法。
抽象方法:
  • 抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。
  • 抽象方法不能被声明成 final 和 static。
  • 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
  • 如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
  • 抽象方法的声明以分号结尾,例如:public abstract sample();

相关文章

  • java面试题集(三)

    32、接口是否可继承(extends)接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体...

  • 有时候学习是一种乐趣

    接口是否可继承接口?抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete cl...

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

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

  • 接口是否可继承(extends)接口?抽象类是否可实现(impl

    接口可以继承接口,而且支持多重继承。抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类。

  • 抽象类与接口

    抽象类与接口的最大区别一就是是否关心实现,如果关心实现方式就用抽象类,不关心实现方式就是接口。抽象类可以有实现方式...

  • 接口与抽象类

    接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可...

  • 接口和抽象类的区别是什么?

    接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可...

  • 高端基础面试题

    接口和抽象类的区别 比较点抽象类接口默认方法抽象类可以有默认的方法实现java 8之前,接口中不存在方法的实现实现...

  • 软件测试面试准备-Java篇

    面试题:接口与抽象类的区别相同点(1)都不能被实例化 (2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的...

  • 今日流程

    一、面试题 抽象类和接口的区别 1.接口描述了方法的特征,不给出实现,一方面解决java的单继承问题,实现了强大的...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/ngtnuxtx.html