从同一个包中的其他类调用其他java类名

时间:2015-11-28 07:40:53

标签: java

我有5个类,即c1,c2,c3,container,main在同一个包中。

从主类开始,我将打印c1,c2的类名。 c3是c1和c2的超类。

我想打印为

我的名字是c1

我的名字是c2

超级班是c3

但它只打印

我的名字是c3

我的名字是c3

超级是主要的

这是我的主要课程

    class main{
        public static void main(String[] argh) {
            Container cont= new Container();
            c3 o1 = cont.getc3("c1");
            c3 o2 = cont.getc3("c2");
            System.out.println("My name is: " + o1.getClass().getName());
            System.out.println("My name is: " + o2.getClass().getName());
            System.out.println("Our superclass is: " + o1.getClass().getSuperclass().getName());

        }
    }

这是我的容器类

    class container extends main {

        private String name;

        public c3 getc3(String string) {
            // TODO Auto-generated method stub
            return new c3(string);
        }

        public String getName() {
            System.out.println("-------------------------"+name);
            return name;
        }

        public String toString() {
            return getName();
        }

    }

这是c3类,它是超类

class c3 extends main {

    private String name;
    private String string1;


    public c3(String string1) {
        string1 = string1;
    }


    public String getName() {
        return name;
    }

    public String toString() {
        return getName();
    }

    public String getString1() {
        return string1;
    }

    public void setString1(String string1) {
        this.string1 = string1;
    }

}

这是c1类

class c1 extends c3{

    public c1(String string1) {
        super(string1);
        // TODO Auto-generated constructor stub
    }

}

这里是c2

class c1 extends c3{

    public c2(String string1) {
        super(string1);
        // TODO Auto-generated constructor stub
    }

}

1 个答案:

答案 0 :(得分:0)

您的getc3方法返回c3类的对象。你传递给弦乐“c1”和“c2”的事实没有什么区别。

如果您希望返回public c3 getc3(String string)c1的等值,则必须更改c2的实施。例如:

    public c3 getc3(String string) {
        if (string.equals("c1"))
            return new c1(string);
        else if (string.equals("c2"))
            return new c2(string);
        else
            return new c3(string);
    }