java入门基础 进阶篇————面向对象中的多态

本文将通过案例、文字详细介绍 面向对象的三大特性 继承 多态 封装
若有细瑕 感谢指正!

今天介绍的是 面向对象三大特性中的————多态

一、什么是多态
多态是同一个行为具有多个不同表现形式或形态的能力
多态就是同一个接口,使用不同的实例而执行不同的操作
图解例子:

宠物
猫 狗
猫吃鱼 狗吃骨头

猫和狗都属于宠物,都有吃食物这个行为,
但是猫吃的是鱼,狗吃的是骨头

二、多态的优点
2.1、消除类型之间的耦合关系
2.2、可替换性
2.3、可扩展性
2.4、接口性
2.5、灵活性
2.6、简化性

三、多态存在的三个必要条件
继承
重写
父类引用指向子类对象

四、关于多态必须要了解的几个概念
向上转型
子类型————》父类型 自动类型转换

向下转型
父类型————》子类型 称为强制类型转换,要加转换符
要求,无论是向上还是向下转型,两者之间必须要有 继承 关系

五、代码案例说明
在这里插入图片描述
在这里插入图片描述
输出结果:
公司桌子上可以写作
公司电脑上可以编写代码

来桌子上玩棋

来电脑上看有趣的视频

以下是代码:

class goods {
public void company() {
System.out.println(“公司里有很多物品——父类方法”);
}
}

class desk extends goods { // 继承了父类
public void company() {
System.out.println(“公司桌子上可以写作”);
} // 对继承的父类属性 进行自己的说明
public void chess() { // 建立自己的新属性
System.out.println(“来桌子上玩棋”);
}
}

class computer extends goods {// 继承了父类
public void company() {
System.out.println(“公司电脑上可以编写代码”);
} // 对继承的父类属性 进行自己的说明
public void look() { // 建立自己的新属性
System.out.println(“在电脑上看有趣的视频”);
}
}

public class Duotai1 {
public static void main(String[] args) { // 建立主方法

    goods a1 = new desk();
    a1.company();
    goods b1 = new computer();
    b1.company();
    // 向上转型 子类型转换成父类型
    System.out.println("\t");
    // 需求调用    look   中的方法? 调用子类中自己的方法?怎么操作?
    // 但是 look没有继承关系
    // 当调用的方法是子类型特有的
    // 这时就需要用到 建立继承关系 需要强制类型转换符 向下转型 父——》子

    desk c = (desk)a1; //这里使用的就是强制类型转换符
      c.chess(); 
    System.out.println("\t");
    goods a2 = new computer();
    // goods a2 = new desk();
    // a2.look();//没有继承关系所以无法运行
    // 使用实例运算符 instandceof
    // 引用 instandceof 数据类型名
    // 执行结果是布尔类型 结果可能是true / false
    // true 代表应用指向的对象是一个goods类型
    // false 代表应用指向的对象不是goods类型
    // 所以我们在这里加一个if判断语句
    if (a2 instanceof desk) { // 这里的a2引用的是父类
        desk a3 = (desk) a2; // 所以跳过desk
        a3.chess();
    } else if (a2 instanceof computer) { // 指向为computer 所以输出look
        computer b2 = (computer) a2;
        b2.look();
    }
}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值