Java 内部类:对外部类的访问及 .this 和 .new
class Outer { public class Inner { public String getInnerClassName() { return Inner.this.getClass().toString(); // 'Inner' can be omitted here...
class Outer { public class Inner { public String getInnerClassName() { return Inner.this.getClass().toString(); // 'Inner' can be omitted here...
内部类的一个重要作用是隐藏继承或是对接口的实现,典型的形式是:内部类来继承或是实现接口,由外部类提供代理 constructor 方法。这些代理 constructor 方法一般都利用的向上转型,即不返回内部类对象,而是返回内部类继承的父类对象或是实现的接口对象。如:
一个 imp class 可以同时实现多个 interface,格式如下:
我们大可将 interface 视为 abstract class 的延伸。
覆写方法的访问权限不得低于被覆写方法的访问权限(或者说覆写方法不能拥有比被覆写方法更严格的访问权限)。
abstract 的真正含义是“阻止产生对象” (针对类) 或是 “禁止被对象所拥有” (针对方法,类似 static)。
先上代码 (adapted from Chapter 8, Thinking in Java, Fourth Edition):
在 overload and override: 重载与覆写 里面提到过,如果在 base class 中有一个可继承的方法,在 ext class 中添加一个同签名的方法则是覆写行为。其实,覆写对 return type 还是有要求的。
2021-01-03 更新:大一统至 Single Dispatch in Java and Python
2021-01-03 更新:大一统至 Single Dispatch in Java and Python