JAVA多态性总结

小明是对象,小明既是学生,也是人,多态是针对对象来说

  • 多态的格式

  • 为什么要学多态呢?为了避免两次new对象,这样子类和父类这样就都能使
    用,下方进行多态的实验可以正面多态可以代码更少更方便在这里插入图片描述
    图片

  • 创建形式就是父类 对象名=new Zi();调用时会优先用子类方法(若子类和父类有重名时会用子类,若没有重名那么调用子类方法会错误,解决方法往下看,涉及到了向上转型和向下转型),

  • 若对象调用子类没有的方法而父类有,那么会向父类使用它有的方法,下面为截图在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

  • 调用成员变量与上部分调用方法不同,变量不可以重载覆盖,子类父类就是变量名相同,值可以不同。直接访问对象变量。看对象名左边是谁则调用谁的变量,若左边没有这个变量,那么会向上寻找,不会找右边的子类的变量,

  • 间接调用的话看这个方法属于哪个类则调用哪个类里面的变量,在这里插入图片描述

  • 调用子类特有方法出错 ,截图

  • 在这里插入图片描述
    对出错问题进行解决,用向下转型的方法
    这下面一条语句就是向下转型的格式。show3()方法可以调用了在这里插入图片描述

  • 总结:多态emmm,比如自己,既是学生也是人,学生作为子类向上转型成为人,那么学生当然具备人的性质,就是可以直接调用人的方法,但是人不一定都是学生,不可以调用学生特有的方法。 向下转型人变成了学生类型对象,那么调用学生特有的属性当然不是问题,

  • 还有一点,向下转型一定要用Instanceof 判断一下,否则子类太多,可能会出错

  • 子类各类都要继承父类,否则没法在实现类创建向上转型

  • 又出错了,
    这里要定义静态方法,要不软出错,应该里面的内容已经存在内存中了,静态方法必须要用这里要定义静态方法,要不软出错
    错误,不是以下原因,是因为pet实在静态方法中,传递到外面的也必须是静态方法来接受
    在这里插入图片描述
    正确,instanceof会传递一个true或false在这里插入图片描述

  • 哈哈,我他妈成功了,不得不说我悟性真高,下面是主方法这是电脑主方法
    usb抽象方法键盘实现usb抽象方法,,鼠标实现usb方法电脑的功能方法

  • 总结1,usb’接口在电脑功能方法代码中要有方法,用来在主方法区创建对象代入进去,括号内要记得把接口加进去,(括号内部其实也是一种赋值,什么类型的变量等于什么类型的变量,交换的过程就是对象的赋值)

  • 总结2,若鼠标键盘有不同的功能,不单单只有打开关闭功能,那还能向上面用吗?不行,这就用倒了向下转型,在电脑功能区增加两个if/else if判断方法,用来判断传进来的是键盘还是鼠标,那么接口类代码如何写,电脑功能区怎么写,主方法区怎么写?这样吗?错误
    ,
    应该这样写,用乡下转型来实现特有的方法,无须再接口写方法再实现,向下转型就是解决这个问题的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值