Java基础学习之多态

概述:
多态是在继承 实现情况下的一种现象

多态分为对象多态行为多态

对象多态是指父类变量接收子类对象,类型一样,指向对象不一样
行为多态是指方法一样,但方法表现不一样

public class Test2 {
    public static void main(String[] args) {
		Teacher t = new Teacher();
		go(t);

        Student s = new Student();
        go(s);
    }

    //参数People p既可以接收Student对象,也能接收Teacher对象。
    public static void go(People p){
        System.out.println("开始------------------------");
        p.run();
        System.out.println("结束------------------------");
    }
}

多态的好处
父类类型作为形参,可以接收一切子类对象,用于解耦合,扩展行更强,更便利

多态的弊端
多态形式下不能调用子类特有的方法

解决方案
类型转换

类型转换

关键字 :
instanceof : 类型比较运算符,用于测试对象是否是指定类型(类或子类或接口)的实例

注意 :
原本是什么类型,才能还原成什么类型
如果类型转换错了,就会出现类型转换异常ClassCastException

//多态形式下父类不能直接调用子类特有方法
//如果p接收的是子类对象
if(父类变量 instanceof 子类){
    //则可以将p转换为子类类型
    子类 变量名 = (子类)父类变量;
}
//如果类型转换错了,就会出现类型转换异常ClassCastException
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值