class Person{ public void eat(){ printf("此方法正在被A使用"); } public void go(){ printf("go go go ") } } class studednt extends Person{ public void eat(){ printf("我来修改eat方法,person类中的方法我还能用,但是我不能修改 eat方法,他正在被A使用"); } public void run(){ printf("run") } } public class Application{ Person s1 = new student(); s1.go; s1.eat; //此时父类调用的方法是子类中修改后的student方法。 }
-
多态是对父类的修改与完善,(为什么不修改父类?)因为在项目中父类此时可能正在被使用,但是我也需要使用这个类,但是这个类里面的方法我需要修改但我又不能修改这个类。所以就使用多态。
-
父类可以指向子类,但不能调用子类独有的方法,如果子类重写了父类方法,那么父类可以调用方法指向的是子类重写的方法。
-
多态是(向上转型)将子类转换成父类,Persion s1 = new student()
-
父类转换成子类必须进行强制转换。(向下转型)((student)s1).run 强制转换可能会丢失一些子类方法!!!