package com.oop.demo06;public class Person { public void run(){ System.out.println("run"); }} package com.oop.demo06;public class Student extends Pers ...
package com.oop.demo06;
public class Person {
public void run(){
System.out.println("run");
}
}
package com.oop.demo06;
public class Student extends Person{
public void run(){
System.out.println("son");
}
public void eat(){
System.out.println("eat");
}
}
/*
多態註意事項:
1、多態是方法的多態,屬性沒有多態
2、父類和子類有聯繫 類型轉換異常(ClassCastException)
3、存在條件:繼承關係,方法需要重寫,父類引用指向子類對象 Father f1=new son();
不能重寫,也沒有多態的方法
1、static 方法,屬於類,它不屬於示例
2、final 常量
3、private方法
*/
package com.oop;
import com.oop.demo06.Student;
import com.oop.demo06.Person;
public class Application {
public static void main(String[] args) {
/*
Student s1=new Student();
s1.setName("lisa");
System.out.println(s1.getName());
s1.setAge(150);//不合法的數據
System.out.println(s1.getAge());
*/
//demo06測試
//一個對象的實際類型是確定的
//new Student();
//new Person();
//可以指向的引用類型就不確定了
//Student能夠調用的方法都是自己的方法或者繼承父類的
Student s1=new Student();
//Person可以指向子類,但是不能調用子類獨有的方法
Person s2=new Student();//父類的引用指向子類
Object s3=new Student();
//s2.eat();不能運行,因為對象能執行的哪些方法,主要看對象的左邊的類型,和右邊關係不大
((Student)s2).eat();//強制轉換
s2.run();
s1.run();
s1.eat();
}
}