我有一个班级
public class Company {
public String b;// boss
public String n;// name
public Company(String boss, String name){
b=boss;
n=name;
}
public void print(){
JOptionPane.showMessageDialog(null, b +n);
}
}
一个扩展它的类
public class MB extends Company {
public static String b;// boss
public static String n;// name
private static String p;//product
public MB(String boss,String name,String product){
super(b,n);
p=product;
}
@Override
public void print(){
JOptionPane.showMessageDialog(null,super.b +super.n +p);
}
我打印方法时的MB类我得到null null和p值。这是为什么?不应该从公司类继承。我是JAVA的新手,所以我可能错过了一些东西,但是阅读以前的问题和JAVA文档我无法找到答案。我个人认为错误是
public static String b;// boss
public static String n;// name
但是无法弄清楚如何解决它。
答案 0 :(得分:3)
在
super(b,n);
您正在传递b
和n
,它们引用您尚未初始化的static
变量,因此null
。也许你打算通过boss
和name
。
答案 1 :(得分:1)
在继承的类公司中,必须发送超级(boss,name)接收的参数而不是MB类中定义的空字符串