class Base {
private String name;
public Base()
{
name="base";
}
public Base(String name)
{
this.name=name;
}
public void mention()
{
System.out.println(name);
}
}
class Chila extends Base
{
public Chila (String s)
{
super(s);
}
}
class Text
{
public static void main(String[] args)
{
Chila c=new Chila("bb");
c.mention();
}
}
我想问一下 父类Base的成员变量name是私有的,怎么会被继承呢?如果要是没有被继承,子类 Chila 中super的参数传给了谁?我感觉应该是传给子类的成员变量啊 可是private变量是不能被继承的,而且子类也没有重新写成员变量name啊,谁能帮我解决一下?谢谢了
private String name;
public Base()
{
name="base";
}
public Base(String name)
{
this.name=name;
}
public void mention()
{
System.out.println(name);
}
}
class Chila extends Base
{
public Chila (String s)
{
super(s);
}
}
class Text
{
public static void main(String[] args)
{
Chila c=new Chila("bb");
c.mention();
}
}
我想问一下 父类Base的成员变量name是私有的,怎么会被继承呢?如果要是没有被继承,子类 Chila 中super的参数传给了谁?我感觉应该是传给子类的成员变量啊 可是private变量是不能被继承的,而且子类也没有重新写成员变量name啊,谁能帮我解决一下?谢谢了
是父类的方法,子类会继承这个方法,所以子类没有继承name,只是访问了父类的name成员
下面是我实现的一段代码,LZ参考下:package net.csdn.blog.johnston;public class Text { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Chila c=new Chila("bb");
c.mention();
System.out.println(c.name);
}}
class Base {
private String name = "base";
public Base()
{
name="base";
}
public Base(String name)
{
this.name=name;
}
public void mention()
{
System.out.println(name);
}
} class Chila extends Base {
public String name = "chila";
public Chila (String s)
{
super(s);
}
}运行结果:
bb
chila
第二.super中的参数当然是传递给父类了。