最近一直对几种属性在子类中的可见性感觉到有一点点的迷惑因此写了两个测试类来加深记忆。
首先来看下两个测试类:
在类A中我们定义了三个属性分别是私有、受保护的、默认(PRIVATE-PACKAGE),B继承自A,
从上面可以看出我们可以在B中利用this,super关键字来访问A中受保护的、默认的属性,也就是说在
B中A中受保护的、默认的属性是可见的。而a1(私有属性)却只能用A中的constructor来initial可见
在B中A中的私有属性是不可见的。
同时我们必须注意到A作为父类必须得有个无参数的constructor。
首先来看下两个测试类:
从上面可以看出我们可以在B中利用this,super关键字来访问A中受保护的、默认的属性,也就是说在
B中A中受保护的、默认的属性是可见的。而a1(私有属性)却只能用A中的constructor来initial可见
在B中A中的私有属性是不可见的。
同时我们必须注意到A作为父类必须得有个无参数的constructor。