public class B extends A {
public B(String password) {
super(password);
this.password = "22";
System.out.println("子类成员变量:"+this.password);
System.out.println("父类成员变量:"+super.password);
}
public static void main(String[] args) {
@SuppressWarnings("unused")
B b = new B("11");
}
}
class A{
protected String password;
public A(String password) {
this.password = password;
}
}
输出:
子类成员变量:22
父类成员变量:22
注意和楼上那个比较######同名变量 会有两个,隐藏只会有一个######
哈哈,建议你放弃JAVA吧
######知道了这个是同一个变量,不是同名, 为什么劝我要放弃?######你这子类 的成员变量不是继承来的吗,又不是子类特有的
######嗯嗯知道了,谢谢 之前被子类继承父类后拥有子+父误导了,以为产生了新变量######请看同名的情况。为 子类 B 添加一个和父类 A 同名的成员变量 password, 结果就不同了吧?
子类成员变量:22
父类成员变量:11
public class B extends A {
//此处,为子类添加一个和父类同名的成员变量
private String password;
public B(String password) {
//调用父类的构造方法,将创建子类的参数值,传给父类的成员变量
super(password); /
// 以字符串"22" 赋值给子类的成员变量
this.password = "22";
//结果,子类成员变量的值,一定是 "22"
System.out.println("子类成员变量:"+this.password);
//父类的成员变量,是创建子类时所接受的参数值,由17行得知,应当是"11"
System.out.println("父类成员变量:"+super.password);
}
public static void main(String[] args) {
@SuppressWarnings("unused")
B b = new B("11");//用参数值"11"创建子类
}
}
class A{
protected String password;
public A(String password) {
this.password = password;
}
}
######是的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。