Java学习 10/13

1.

如果一个类定义了一个没有执行代码的方法,编译会出错,必须加上abstract关键字,使其成为抽象方法。因抽象方法无法被执行,故该类无法被实例化。包含抽象方法的类必须用abstract修饰,申明为抽象类,否则会编译出错。

2.

抽象类要求其子类必须重写其定义的抽象方法。

3.

面向抽象编程:尽量引用高层类型,避免引用实际子类型的方式。
高层类型定义接口规范,子类型具体实现逻辑。

4.

多态是指,针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。多态仅针对于实例方法,不包括静态方法和变量。
“编译看左边,运行看右边。”——编译的时候,必须父类(或抽象类、接口)中有所调用方法的具体实现(或方法签名),否则会编译报错;运行的时候,调用实际类型的实例方法,若方法被重写,调用的是子类中重写后的方法,若未重写,调用的则是子类继承自父类的方法。

5.

创建一个实现类MyImplement2,该实现类不仅继承了MyImplement1并且实现了Interface2。
此时在实现类MyImplement2中调用helloWorld()方法,到底执行的是MyImplement中的方法还是执行Interface2中的方法?
答:因为类优先于接口,所以将会执行MyImplement中的方法。

6.

虽然实例可以访问静态字段,但是它们指向的其实都是Person class的静态字段。所以,所有实例共享一个静态字段。
因此,不推荐用实例变量.静态字段去访问静态字段,因为在Java程序中,实例对象并没有静态字段。在代码中,实例对象能访问静态字段只是因为编译器可以根据实例类型自动转换为类名.静态字段来访问静态对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容