Re: [问题] private继承问题

楼主: TonyQ (自立而后立人。)   2014-07-01 17:40:47
※ 引述《meya (落寞之心)》之铭言:
: class A{
: private int a1=1;
: }
: public class test extends A{
: public static void main(String[] args){
: test t=new test();
: System.out.println(t.a1);
: }
: }
: 子类别无法直接存取父类别的private a1,但
: 究竟子类别有无继承父类别的private a1?
: 应该用下列哪种理解才正确?
: (A)子类别内的a1继承自父类别的a1,只是父类别用private修饰a1,让其他类别无法直接
: 存取父类别内的a1
: (B)使用private修饰过的a1,无法被子类别继承
: 恳请回答谢谢
先讲原文的程式码看下来标准答案是,compile error。
t.a1 is not visible
http://screencast.com/t/VkD1pmc2dt9i
继承有一些不同的解释方法,
一般来讲,我的想法会偏好解释成继承关系下,
父类别其实是一种实体、子类别也是一个实体,
所以建构子类别的时候,父类别也需要被建构一样。
从状态面来讲,假设有
public class Parent{
private int a1 = 1;
}
public class Child extends Parent{
private int a1 = 2;
}
今天 new Child() 的话,两个 a1 都是同时存在的
只是在这个例子里面 Parent 的 a1 完全没有意义
不会被异动、无法被存取而已。

Links booklink

Contact Us: admin [ a t ] ucptt.com