java基础之十一->Object、多态(polymorphic)

贾巧姐
• 阅读 806

Object

java基础之十一->Object、多态(polymorphic)
java基础之十一->Object、多态(polymorphic)
java基础之十一->Object、多态(polymorphic)
java基础之十一->Object、多态(polymorphic)

总结

java基础之十一->Object、多态(polymorphic)
java基础之十一->Object、多态(polymorphic)

多态

定义

对于同一指令,不同对象给予不同的反应(不同的方法实现)

规范:(多态实现的前提)

1、必须要有继承关系
2、子类方法必须重写父类的方法
3、父类引用指向子类对象

目的

为了提高代码的扩展性和维护性
方便代码逻辑的编写

实现

java基础之十一->Object、多态(polymorphic)

父类 Pet
package com.msbline.oop.polymorphic;
public abstract class Pet {
    public abstract void feed();
}
子类 Dog
package com.msbline.oop.polymorphic;
public class Dog extends Pet{
    @Override
 public void feed() {
        System.out.println("狗在吃骨头");
    }
}
子类 Cat
package com.msbline.oop.polymorphic;
public class Cat extends Pet{
    @Override
 public void feed() {
        System.out.println("猫在吃鱼");
    }
}
测试 Person
package com.msbline.oop.polymorphic;
public class Person {
    public void feed(Pet pet){
        pet.feed();
    }
    public Pet buy(int type){
        if(type == 1){
            return new Dog();
        }else{
            return new Cat();
        }
    }
    public static void main(String[] args) {
        Person p = new Person();
        Pet dog = new Dog();
        Pet cat = new Cat();
        p.feed(dog);
        p.feed(cat);
        Pet buyPet = p.buy(1);
        if(buyPet instanceof Dog){
            System.out.println("买了一只狗");
        } else if(buyPet instanceof Cat) {
            System.out.println("买了一只猫");
        }
    }
}

总结

java基础之十一->Object、多态(polymorphic)
java基础之十一->Object、多态(polymorphic)
java基础之十一->Object、多态(polymorphic)

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
梦
5年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
九路 九路
5年前
一个爬虫的故事:这是人干的事儿?
本文转载自轩辕之风的文章,链接https://mp.weixin.qq.com/s/YygbUWpa2mbPZPuPNhdt2w爬虫原理我是一个爬虫,每天穿行于互联网之上,爬取我需要的一切。image.png(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/656d
Stella981 Stella981
4年前
JavaScript基础系列
!JavaScript基础系列(https://oscimg.oschina.net/oscnet/c1dc2f84f95d13105d79ba82a648f0c5eab.png)JavaScript基础系列!image.png(https://oscimg.oschina.net/oscnet/e16bf4232aab0acb21c56
Wesley13 Wesley13
4年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Stella981 Stella981
4年前
GridView实现九宫格
GridViewgv(GridView)findViewById(R.id.g1);    ArrayList<HashMap<String,ObjectdatanewArrayList<HashMap<String,Object();    for(inti0;i<images.length;i)
Wesley13 Wesley13
4年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
CRM从哪些方面进行了管理?
我们将CRM(https://www.sap.cn/products/crm.html!image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/17e2d96568a98f0