您的位置:首页 > 编程语言 > Java开发

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

2017-04-11 11:33 323 查看
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类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: