first question
parent class.java
public class Hero {
public String name = "来自父类的字段";
public void effect(){
System.out.println("来自父类的方法");
}
}
subclass.java
public class ADHero extends Hero {
public String name = "来自子类的字段";
public void effect(){
System.out.println("来自子类的方法");
}
}
test.java
Output result:
Question 2
Child class, parent class and above remain the same
test.java
public static void main(String[] args) {
Hero hero = new Hero();
ADHero adHero = new ADHero();
System.out.println("父类地址是:"+hero);
System.out.println("子类地址是:"+adHero);
System.out.println(hero.name);
hero=adHero ;
System.out.println("赋值后父类地址是:"+hero);
System.out.println(hero.name);
}
output result
Question 3
parent class.java
public class Hero {
public String name = "来自父类的字段";
public void effect(){
System.out.println("来自父类的方法");
}
}
subclass.java
public class ADHero extends Hero {
//public String name = "来自子类的字段"; //注意 注释掉了
public void effect(){
System.out.println("来自子类的方法");
}
}
test.java
public static void main(String[] args) {
Hero hero = new Hero();
ADHero adHero = new ADHero();
System.out.println("父类地址是:"+hero);
System.out.println("子类地址是:"+adHero);
System.out.println(hero.name);
hero=adHero ;
System.out.println("赋值后父类地址是:"+hero);
System.out.println(hero.name);
}
output result
Question 4
test.java
public static void main(String[] args) {
Hero hero = new Hero();
ADHero adHero = new ADHero();
System.out.println("父类地址是:"+hero);
System.out.println("子类地址是:"+adHero);
adHero.name="来自子类的字段"; //注意 增加了这句
System.out.println(hero.name);
hero=adHero ;
System.out.println("赋值后父类地址是:"+hero);
System.out.println(hero.name);
}
Actually --- adHero.name="Field from subclass"; // If the subclass does not have a name attribute, the name of this sentence is the name of the parent class. If the subclass name attribute, then the name of this sentence is
not the subclass name, please see question 5
output result