遗传问题JAVA

时间:2014-05-23 04:13:33

标签: java inheritance

我有一个班级

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

但是无法弄清楚如何解决它。

2 个答案:

答案 0 :(得分:3)

super(b,n); 

您正在传递bn,它们引用您尚未初始化的static变量,因此null。也许你打算通过bossname

答案 1 :(得分:1)

在继承的类公司中,必须发送超级(boss,name)接收的参数而不是MB类中定义的空字符串