多态
作者:互联网
public class zi extends fu{
public void say (){
System.out.println("say,erzi");
}
public void eat(){
System.out.println("eat");
}
}
public class fu {
public void say(){
System.out.println("say,baba");
}
}
public class Application {
public static void main(String[] args) {
zi z = new zi();//创建一个子类对象
fu f = new zi();//父类的引用指向子类,但只能用他自己本身的方法,不能使用子类独有的方法
f.say();
z.eat();
}
}
多态:
-
多态是方法的多态,属性没有多态
-
父类和子类,有关系的类,如果两个类型没有关系,则会报异常ClassCastException
-
对象能执行哪些方法主要看左边的类型,和右边关系不大,左边是父类,则只能使用父类方法或者object,左边是子类,则可以使用自己独有的方法和父类的方法
-
如果两个类存在继承关系,且父类的引用指向子类,那这个父类型本身的方法会被子类覆盖重写,如上代码,Fu,Zi两个类都有say方法,但是父类的引用指向了子类,这样操作以后,f调用say方法时会输出被子类重写以后的方法,且不能使用子类独有的eat方法,如需使用需要进行强制类型转换为zi
-
存在多态的条件:有继承关系,方法需要重写,父类引用指向子类对象
标签:子类,多态,say,父类,方法,public 来源: https://www.cnblogs.com/xiaoheyyds/p/16062948.html