我对java很陌生,想知道是否可以在父类(super class)中调用子类方法。如果进行继承,那么设置 public static void main 的合适位置在哪里。
父类(super class)
public class User {
private String name;
private int age;
public User() {
//Constructor
}
//Overloaded constructor
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return this.name;
}
public static void main(String []args) {
User user1 = new Admin("Bill", 18, 2);
System.out.println("Hello "+user1.getName());
user1.getLevel();
}
}
子类
public class Admin extends User {
private int permissionLevel;
public Admin() {
//Constructor
}
//Overloading constructor
public Admin(String name, int age, int permissionLevel) {
super(name, age);
this.permissionLevel = permissionLevel;
}
public void getLevel() {
System.out.println("Hello "+permissionLevel);
}
}
最佳答案
I'm very new to java and would like to know whether calling a subclass method in a superclass is possible.
父类(super class)对其子类一无所知,因此,您不能在父类(super class)中调用子类实例方法。
where is the proper place to set public static void main.
我不建议将
main
Admin
中的方法类也不是User
类的许多因素。而是创建一个单独的类来封装 main
方法。例子:
public class Main{
public static void main(String []args) {
User user1 = new Admin("Bill", 18, 2);
System.out.println("Hello "+user1.getName());
user1.getLevel();
}
}
关于Java 继承 : Calling a subclass method in a superclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44604702/