1. class Super {
2. private int a;
3. protected Super(int a) { this.a = a; }
4. }
.....
11. class Sub extends Super {
12. public Sub(int a) { super(a); }
13. public Sub() { this.a= 5; }
14. }
Which two, independently, will allow Sub to compile? (Choose two.)
A. Change line 2 to:
public int a;
B. Change line 2 to:
protected int a;
C. Change line 13 to:
public Sub() { this(5); }
D. Change line 13 to:
public Sub() { super(5); }
E. Change line 13 to:
public Sub() { super(a); }
答案是CD,我想知道关于变量继承方面的解释,知道的大哥们最好把变量继承的其他方面也说说,比如父类的属性是private的,子类中如何操作,如果父类的属性是public的,子类的对象通过.属性赋值以后父类的属性有什么变化,或者说说影响范围,很迷啊!请高手帮帮忙
2. private int a;
3. protected Super(int a) { this.a = a; }
4. }
.....
11. class Sub extends Super {
12. public Sub(int a) { super(a); }
13. public Sub() { this.a= 5; }
14. }
Which two, independently, will allow Sub to compile? (Choose two.)
A. Change line 2 to:
public int a;
B. Change line 2 to:
protected int a;
C. Change line 13 to:
public Sub() { this(5); }
D. Change line 13 to:
public Sub() { super(5); }
E. Change line 13 to:
public Sub() { super(a); }
答案是CD,我想知道关于变量继承方面的解释,知道的大哥们最好把变量继承的其他方面也说说,比如父类的属性是private的,子类中如何操作,如果父类的属性是public的,子类的对象通过.属性赋值以后父类的属性有什么变化,或者说说影响范围,很迷啊!请高手帮帮忙
解决方案 »
- 求解0 0关于swing JFrame 里面的remove和add函数
- int和byte[]相互转换是手动移位快还是ByteBuffer快
- j2se关于args参数的一个问题
- struts的url传值问题
- 求java版的终端版的五子棋游戏
- 如何建立不同的Node实例
- 运用SWT的树,怎么实现点击一个treeitem,从而触发相关操作啊.(高手,helep me!)
- 为什么我下载的installAnywhere不能用?急
- 打开保存对话框问题? (请各位帮~~~~~~~~忙啊)
- 天啊,救救 我,誰來救我?????有沒有人在,看看我的問題吧
- 列值做超链接.并把该超链接的值保存 做为超链接页面的查询条件
- 提示需要.class,这是什么错误???
private是不可以访问的,就是父亲自己的小金库;
protected是给儿子的财产,儿子可以使用;
public是随便访问的,是公共厕所,非直系亲属也可以用;
父类没有无参的构造方法,
如果子类中没有特别写明。会自动调用父类无参的构造super(),但是你这个父类没有无参的构造,super()编译不会通过。因此,第13行在ab答案下通不过e答案a是父类的私有属性,不能操作,如果把父类的属性改为公有或保护,e答案就正确了。
c答案调用了this(5),默认的super()失效,而this(int a)里又调用了父类的带参构造,能通过编译,在D答案中调用了父类有参的构造能成功 构造,如果没有写明,会默认一个无参的构造,但是你写了构造方法后就不会再有默认的构造出现了。
虽然AB加的访问修饰符使得子类可以访问到,但是超类没有默认的构造器是不行的!
看下边的代码:class mysuper{
protected int a;
public mysuper(int a){
this.a=a;
}
public mysuper(){//添加默认构造器
}
}
class sub extends mysuper{
public sub(int a){
this.a=a;
}
public sub(/*int a*/){
//this(a)
}
}
如果子类中没有特别写明,会自动调用父类无参的构造super()
这句很值得学习啊