多态

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. 存在多态的条件:有继承关系,方法需要重写,父类引用指向子类对象

posted @   萧何i  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示