上轉(zhuǎn)型中:
- 如果父類中的屬性和子類的屬性同名的時(shí)候, 父類對象認(rèn)為認(rèn)為子類的屬性是特有的 , 父類定義的對象只調(diào)用自己的屬性。
2.即是當(dāng)父類屬性和子類屬性同名時(shí)请敦, 父類對象名 調(diào)用的就是 父類的屬性肆饶,子類的對象名 調(diào)用的就是 子類的屬性改衩。 - 如果父類的方法和子類方法同名時(shí),在上轉(zhuǎn)型關(guān)系中驯镊,父類的引用指向子類的實(shí)體 葫督,父類的對象調(diào)用的是子類的方法。但是要注意板惑,此時(shí)父類的對象名不能調(diào)用子類特有的方法橄镜,如果要調(diào)用,則需要下轉(zhuǎn)型洒放。
父類:
package com.qf.demo6;
public class Test {
public static void main(String[] args) {
Person person = new Person();
Student student = new Student();
Person person2 = new Student();
person2.eat();//父類的引用指向 子類的實(shí)體 父類的對象調(diào)用的是子類的方法
System.out.println(person2.name);
System.out.println(person2.age);
Student student2 = (Student) person2;
System.out.println(student2.name);
System.out.println(student2.age);
// 父類對象名 調(diào)用的就是 父類的屬性
// 子類的對象名 調(diào)用的就是 子類的屬性
/**
* 父類的 屬性和 子類屬性同名 . 父類調(diào)用父類的
* 子類重寫了 弗雷德分昂發(fā) 父類對象調(diào)用的是子類的方法
*/
}
}
Student類
package com.qf.demo6;
public class Student extends Person{
String name = "zzz";
int age = 1;
String sex= "女";
@Override
public void eat() {
System.out.println("學(xué)生吃肉");
System.out.println(name);
System.out.println(super.name);
System.out.println(super.age);
}
public void eat1() {
System.out.println("學(xué)生dd吃肉");
}
}
Person類
package com.qf.demo6;
public class Person {
String name="abc";
int age= 9;
public void eat(){
System.out.println(name);
System.out.println("吃");
}
}