随笔 - 54  文章 - 0  评论 - 0  阅读 - 3832

多态

多态

  • 即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。

  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型又=有很多(父类,有关系的类)

  • 多态存在的条件

                 有继承关系

                 子类重写父类的方法

复制代码
public class Person {

    public void say(){
        System.out.println("say 哈喽");
    }


public class Student extends Person{

    @Override  //方法重写   快捷键:Alt+Insert
    public void say() {
        System.out.println("say 古德拜");
    }

    public  void cry(){
        System.out.println("哭死了");
    }
}



public class Amplication {

    public static void main(String[] args) {

        //一个对象的实际类型是确定的
        //可以只想的引用类型就不确定了:父类的引用指向子类

        //Student 能调用的方法都是自己的或者父类的
        Student s1 = new Student();
        //Person 父类型:可以指向子类,但是不能调用子类独有的方法
        Person s2 = new Student();

        //对象能执行哪些方法,主要看对象左边的类型,和右边的关系不大
        s1.say();
        s2.say();  //子类重写了父类的方法,所以执行子类重写之后的方法
    }
}
        /*
        多态注意事项:
            1.多态是方法的多态,属性没有多态
            2.父类和子类,有联系      类型转换异常!ClassCastException!
            3.存在条件: 继承关系,方法重写,父类引用指向子类对象! Father f1 = new Son();

                1. static 方法,属于类,它不属于实例
                2. final 常量
                3 Private 方法

        */
复制代码

 

                 父类引用指向子类对象

  • 注意:多态是方法的多态 ,属性没有多态性

  • instanceof (转换类型) 引用类型

posted on   三岁学JAVA  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示