Java 如何获得期望的继承结果?
这是超类Java 如何获得期望的继承结果?,java,inheritance,Java,Inheritance,这是超类 public class MonsterMash { public static void main(String[] args) { Monster moron = new Senator("jim","Georgia"); System.out.println(moron.getName()); System.out.println(moron.getState()); } } 执行程序后,代码不会产生所需的结果。 我想我在主课上做错了什么 我
public class MonsterMash
{
public static void main(String[] args)
{
Monster moron = new Senator("jim","Georgia");
System.out.println(moron.getName());
System.out.println(moron.getState());
}
}
执行程序后,代码不会产生所需的结果。
我想我在主课上做错了什么
我想要的结果是吉姆·乔治亚。
如何打印它?您的构造函数中没有使用s的值
public class Monster
{
String name;
public Monster()
{
name="Dracula";
}
public Monster(String n)
{
name=n;
}
public String getName()
{
return name;
}
}
public class Politician extends Monster
{
public Politician(String n)
{
super(n);
}
}
public class Senator extends Politician
{
String state;
public Senator(String n)
{
super(n);
state="New Jersey";
}
public Senator(String n,String s)
{
super(n);
state=s;
}
public String getState()
{
return state;
}
}
你需要一个白痴来当参议员,而不是一个怪物。大体上:
public Senator(String n,String s)
{
super(n);
state= s; // This was set to a default value of "New Jersey" before
}
你没有在你的构造函数中使用s的值
public class Monster
{
String name;
public Monster()
{
name="Dracula";
}
public Monster(String n)
{
name=n;
}
public String getName()
{
return name;
}
}
public class Politician extends Monster
{
public Politician(String n)
{
super(n);
}
}
public class Senator extends Politician
{
String state;
public Senator(String n)
{
super(n);
state="New Jersey";
}
public Senator(String n,String s)
{
super(n);
state=s;
}
public String getState()
{
return state;
}
}
你需要一个白痴来当参议员,而不是一个怪物。大体上:
public Senator(String n,String s)
{
super(n);
state= s; // This was set to a default value of "New Jersey" before
}
您的类
Senator
的构造函数正在将状态值设置为“newjersey”,您所需的状态值从未设置为从main()
传递的动态值。您的类Senator
的构造函数正在将状态值设置为“newjersey”,您所需的状态值从未设置为从main()
传递的动态值,您必须将Senator分配给Senator类型引用,因为您希望调用仅属于Senator的方法
Senator moron = new Senator("jim","Georgia");
必须将Senator分配给Senator类型引用,因为您要调用只属于Senator的方法
Senator moron = new Senator("jim","Georgia");
类内怪物混搭:
Senator moron = new Senator("jim","Georgia");
System.out.println(moron.getName());// Monster/Polititian/Senator
System.out.println(moron.getState());// Senator only
如果不想在此处更改并保持动态绑定,则必须将Monster和Political类都设置为抽象类,并在这两个类中创建抽象方法getState():
Senator moron = new Senator("jim","Georgia");
类内怪物混搭:
Senator moron = new Senator("jim","Georgia");
System.out.println(moron.getName());// Monster/Polititian/Senator
System.out.println(moron.getState());// Senator only
如果不想在此处更改并保持动态绑定,则必须将Monster和Political类都设置为抽象类,并在这两个类中创建抽象方法getState():
Senator moron = new Senator("jim","Georgia");
在目前的情况下,这是不可能的,因为每个人都将生活在
newyersey
公共参议员(字符串n,字符串)和公共参议员(字符串n,字符串s)之间有什么区别
?在目前的状态下,这是不可能的,因为每个人都将生活在新耶西
公共参议员(字符串n,字符串)和公共参议员(字符串n,字符串s)
之间有什么区别?