其他分享
首页 > 其他分享> > 多态

多态

作者:互联网

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();
    }
}

多态:

  1. 多态是方法的多态,属性没有多态

  2. 父类和子类,有关系的类,如果两个类型没有关系,则会报异常ClassCastException

  3. 对象能执行哪些方法主要看左边的类型,和右边关系不大,左边是父类,则只能使用父类方法或者object,左边是子类,则可以使用自己独有的方法和父类的方法

  4. 如果两个类存在继承关系,且父类的引用指向子类,那这个父类型本身的方法会被子类覆盖重写,如上代码,Fu,Zi两个类都有say方法,但是父类的引用指向了子类,这样操作以后,f调用say方法时会输出被子类重写以后的方法,且不能使用子类独有的eat方法,如需使用需要进行强制类型转换为zi

  5. 存在多态的条件:有继承关系,方法需要重写,父类引用指向子类对象

标签:子类,多态,say,父类,方法,public
来源: https://www.cnblogs.com/xiaoheyyds/p/16062948.html