Java 抽象类 和 接口 的常见问题

来源:互联网 发布:popper.js是什么 编辑:程序博客网 时间:2024/06/05 05:56

1. 抽象类可以有构造函数吗?

    抽象类 可以有构造函数,但不显式调用;因为抽象类不能直接实例化,也就是不能 new,

    所以如果 abstract class 有构造方法,继承它的子类,必须在其构造方法中通过 super(...) 调用。


2. abstract 类可以实例化吗?

    不可以直接实例化,只能被继承;


3.System class 中 InputStream in; 为什么可以声明 InputStream 的对象?

    InputStream 是 abstract class ,此处用到了多态性,即父类引用指向子类对象;

    实际使用中,in 获取的是 InputStream 的子类对象。


4. abstract class 可以没有 abstract 方法,但是有 abstract 方法的类必须声明为 abstract 类;


5. abstract class 单继承;


6. Interface 没有构造函数,不能实例化对象;


7. Interface 是特殊的 abstract 类,但支持多 extends (一个接口可有多个父接口);


8. Interface 所有的方法都是public abstract;变量都是public static final类型。

0 0
原创粉丝点击