永发信息网

java有参构造器问题

答案:4  悬赏:0  手机版
解决时间 2021-04-03 21:03
java有参构造器问题
最佳答案
你的错误有2点:
  1、你在子类arrorchild中的构造函数中使用super调用了父类arror的构造方法,所以当你new实例化子类的时候,所带入的参数都到父类中去了,你的子类中的a和b并没有被重新赋值。
  2、就算赋值到父类中,其实也没什么,我们在子类中一样可以取出来用。
  可以这样取父类的属性和方法:当有相同的属性或者方法时,this子类表示调用自己的属性或者方法,super调用父类的属性或者方法。当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法。
  再来看看你的代码:你在父类中使用private修饰符修饰a和b,那么这样就出现问题了。private修饰的变量和方法,只能本类使用,即时是它的子类也是不可以使用的。所以,就算在子类arrorchild中使用super也是获取不到了。
全部回答
你打印出来的是你arrorchid类里面的a和b。
你继承使用有误。在父类里面定义了的a,b为私有的无法给子类继承过来。正确的写法应该如下
public abstract class arror{
protected int a;//protected
protected String b;//protected
public arror(int a,String b){
this.a=a; this.b=b;
}
public abstract void display();
}
public class arrorchild extends arror{
//private int a;
//private String b;
public void display(){
System.out.println("a:"+a+','+"b:"+b);
}
public arrorchild(int a,String b){
super(a,b);
}
public static void main(String[] args) {
arrorchild arr =new arrorchild(4,"child");
arr.display();
}
}
你arrorchild 里面的private a,b. 都没被初始化.
你在arrorchild 的构造方法里面, 直接调用的是super(a,b). 并没有初始化你arrorchild 本身的a,b.
你想打印出来的话, 就把你arrorchild 里面 a, b删了, 然后把arror里面的a,b改成protect
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
业主将商铺交给物业公司代理管理,之前接受店
2014款大众Polo 16年出厂的是国几排放
这是什么虫子,在墙角处
禹传位给益,但他的儿子启是怎样最终取得统治
这里的6道解方程怎么做
我们这是个小县城,但很多人觉得我们这的消费
明明今年3岁,妈妈的年龄是明明的9倍,再过三
我家养的大肉食鸡今天四十天了晚上走鸡需要提
我和他快要结婚了,按照南京江宁的习俗,我们该
if( ((int)pow((double)2,j-1) & i) == 0) 是
电脑管家里面的最近文档怎么回事?
物流按物流活动作用的空间范围分为( )。 A
单选题据报道,进入本世纪后,几乎每年至少有
盆景该如何换盆?
自我调节能力与恢复力稳定性有和何区别。?
推荐资讯
设汉字点阵为16*16,4000个汉字的字形信息占
勇士高层何时给库里一个超级中锋
肥东县烟单局进香烟有哪些程序。
迄今为止世界上有多少只大熊猫
为君天罚至死方休 不及背后妙手温柔 啥意思
卤化物形成哪些类型的化学键
不安理智歌词什么意思,为什么理智粉那么少
房前屋后的土地发生纠纷怎样解决
焦作到上海虹桥多少公里
昨天我买了一条活的鲤鱼,回家后放在盆子里养
千古知言汉武帝,三六相合九运启.
北京机场叫什么名字,顺德到香港机场最便捷的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?