多态

概念

多态:就是对象的多种表现形式,(多种体现形态)

多态的体现

从类来说,在类中有子类和父类之分,子类就是父类的一种形态 ,对象多态性就从此而来。

从方法来说,方法的重载 和 重写 也是多态的一种。 重载: 一个类中方法的多态性体现 重写: 子父类中方法的多态性体现。

多态的使用:对象的类型转换

类似于基本数据类型的转换:
·向上转型:将子类实例变为父类实例 |- 格式:父类 父类对象 = 子类实例 ;
· 向下转型:将父类实例变为子类实例 |- 格式:子类 子类对象 = (子类)父类实例 ;

多态使用

注意

  public static void main(String[] args) {
        /**
         *   Student和Teacher都是Person的子类
         *   将他们向上转型转成Person类不会报错
         *   你可以说学生和老师都是人
         */
        Person s1 = new Student();
        Person t1 = new Teacher();
        /**
         *   Person是Student和Teacher的父类
         *   将他向下转型转成Student和Teacher不会报错
         *   你可以说人可以是学生或者是老师
         */
        Student s2 = (Student) new Person();
        Teacher t2 = (Teacher) new Person();
        /**
         *   将student转成teacher或者teacher转成student会报错
         *   你不可以说学生是老师,老师是学生
         */
        Teacher s3 = new Student();
        Student t3 = new Teacher();
    }

场景

    public static void main(String[] args) {
      Student student = new Student();
        student.say();
//        Teacher teacher = new Teacher();
//        teacher.say();
    }
    public static void say(Person p){
        p.say();
    }

比如我们想传入学生类调用学生类的方法时,刚开始可能传入的是Student student 后来我们又想调用老师类的方法则需要传入Teacher teacher 改变一个对象就需要修改一次方法很麻烦 利用多态则 直接传入Person person 传入的参数都可以接收到 不用再修改方法

instanceof

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值