私は1つのファイル内のpersonにサブタイプ化された一連のデータ型を作成しようとしています。次のコードにはコンパイルエラーはありませんが、コードをテストする別のファイルを作成すると、すべてのサブタイプが宣言されていないためコンパイルされません。単一ファイル内のサブタイプJava?
package people;
public abstract class Person {
public interface Teacher {
}
public class Professor implements Teacher {
}
public class Student {
}
public class TeachingAssistant extends Student implements Teacher {
}
}
これはテストクラスで、Teacher、Professor、およびTeachingAssistantの下に赤い線が表示されます。私はなぜそれが機能していないのか理解していない。
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);
}
}
私は本当にそれを得ることはできません、いくつかの助けができますか?
** inner **クラスをインスタンス化するには、抽象クラスのインスタンスが必要です。そして、奇妙なことに、「教授」は「人」ではない。 –