Java扩展类没有保存变量,它甚至可以做到吗?

时间:2017-03-14 22:23:05

标签: java

所以我想说我有3节课。

public class sup extends sup3{
    private int year, month;
    private sup2 supp = null;
    public sup(int year, int month){
        this.year = year;
        this.month = month;
        super.setYear(this.year);
        super.setMonth(this.month);
        createClass();
    }

    public void createClass(){
            sup2 supp = new sup2();
    }
}

第二课

public class sup2 extends sup3 {

    public sup2(){
        whatever();
    }

    public void whatever(){
        System.out.println(getYear() + " " + getMonth());
    }
}

第三课

public class sup3 {
    private int year, month;

    public void setYear(int year){

        this.year = year;
        System.out.println("Year: " + this.year);
    }
    public void setMonth(int month){
        this.month = month;
        System.out.println("Month: " + this.month);
    }
    public int getYear(){
        return this.year;
    }
    public int getMonth(){
        return this.month;
    }
}

显然是主要的

public class Main {

    public static void main(String[] args) {
        sup suppp = new sup(2000, 15);
    }
}

所以基本上即使我将sup3变量设置为第一类,我也无法在sup2类中看到它们,即使我可以访问sup3类。我没有在任何地方制作和保存扩展的sup3类,为什么我无法在任何地方看到设置变量?

它只打印出0 0

1 个答案:

答案 0 :(得分:3)

很简单,您的类结构在supsup2之间没有任何关系。除了拥有一个共同的父母,这两个类是完全不同的东西。

(更正:sup3是常见的父类,而不是sup作为此答案建议的先前版本。)