gpt4 book ai didi

java - 单个文件中的子类型 Java?

转载 作者:行者123 更新时间:2023-12-01 16:53:19 24 4
gpt4 key购买 nike

所以我试图在一个文件中创建一组数据类型,这些数据类型的子类型为 person。下面的代码没有任何编译错误,但是当我创建另一个文件来测试代码时,它不会编译,因为它说所有子类型都没有声明。

package people;


public abstract class Person {
public interface Teacher {

}
public class Professor implements Teacher {

}

public class Student {

}

public class TeachingAssistant extends Student implements Teacher {

}
}

这是测试类(class),它在教师、教授和助教下方显示红线。我不明白为什么它不起作用。

package people;

/**
*
* @author Alex
*/

public class Edutypes {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
testTypes();
}

public static void testTypes() {
Person a = new Professor(), b=new Student(), c=new TeachingAssistant();
System.out.println(a);
System.out.println(b);
System.out.println(c);
Teacher d = new Professor(), e=new TeachingAssistant();
System.out.println(d);
System.out.println(e);

}
}

我真的不明白,有人可以帮忙吗?

最佳答案

您的内部类实际上都没有扩展 Person;他们只是碰巧生活在 Person 类中。

您必须明确a)使您的内部类静态,b)让它们扩展Person,c)引用它们限定,例如Person a = new Person.Professor()

    public static class Professor extends Person implements Teacher {

}

public static class Student extends Person {

}

public static class TeachingAssistant extends Student implements Teacher {

}

关于java - 单个文件中的子类型 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com