I'm very new to java and would like to know whether calling a subclass method in a superclass is possible. And if doing inheritance, where is the proper place to set public static void main.
Superclass
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();
}
}
Subclass
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);
}
}
Functionality
which holds the main method, and your two extra classes. What if you program may one day provide functionality which has nothing to do with users. The simplest use case may be displaying a help text – that wouldn’t fit in theUser
class, could it? – bleistift2user1.getLevel()
you will either need to declareuser1
likeAdmin user1
or castuser1
like so((Admin) user1).getLevel()
. – Brendon Boldt