上文还没有写完,这一篇继续

Java 中的多态,一次讲个够之继承关系中的多态

https://www.cnblogs.com/qianjinyan/p/10824576.html

接口实现关系,和继承区别不是很大,

接口和继承从定义上,无非一个对象能实现两个接口,解决了子类只能单继承的问题

先来两个接口,一个是动物类,一个是哺乳动物类,先不要管这两个类的关系,这就是没有相互关系的两个接口

public interface Animal {

     void eat();
void work();
}
public interface Mammal {
}
public class Cat implements Animal,Mammal{

    public void eat() {
System.out.println("===我是猫咪我要吃鱼");
}
public void work() {
System.out.println("===我是猫咪我负责抓老鼠");
} public int numberOfLegs(){
return 4;
}
}
public class Dog implements Animal,Mammal {

    @Override
public void eat() {
System.out.println("====我是小狗我要吃骨头");
}
@Override
public void work() {
System.out.println("====我是小狗我负责看家");
} public void travel(){
System.out.println("Dog travels");
} public int numberOfLegs(){
return 4;
} }
public class Chicken implements Animal {

    public void eat() {
System.out.println("===我是鸡仔我要吃粗粮");
}
public void work() {
System.out.println("===我是鸡仔我负责下蛋");
} public int numberOfLegs(){
return 2;
}
}

测试类:

public class TestM {

    public static void main(String args[]){
Cat m = new Cat();
m.eat();
m.work();
int number =m.numberOfLegs();
System.out.println(number); Animal animal = new Cat();
animal.eat();
animal.work();
int animalnumber =((Cat)animal).numberOfLegs();
System.out.println(number); Mammal mammal = new Cat();
((Cat)mammal).eat();
((Cat)mammal).work();
int mammalnumber =((Cat)mammal).numberOfLegs();
System.out.println(number); Animal ch = new Chicken();
ch.eat();
ch.work();
int ch_legs =((Chicken)ch).numberOfLegs();
System.out.println(ch_legs); }
}

Java 中的多态,一次讲个够之接口实现关系中的多态的更多相关文章

  1. java 接口实现关系下的多态

    2019独角兽企业重金招聘Python工程师标准>>> 多态: 父类的引用类型变量指向了子类的对象 或者 是接口类型的引用类型变量指向了接口实现类的对象. 实现关系下的多态:    ...

  2. 《Entity Framework 6 Recipes》中文翻译系列 (41) ------ 第七章 使用对象服务之标识关系中使用依赖实体与异步查询保存

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-7  标识关系中使用依赖实体 问题 你想在标识关系中插入,更新和删除一个依赖实体 ...

  3. JAVA_SE基础——50.接口关系下的多态

    接口关系下的多态和继承关系下的多态 相差无几,应该更简单些~ 多态: 父类的引用类型变量指向了子类的对象或者是接口类型的引用类型变量指向了接口实现类 的对象. 实现关系下的多态: 接口  变量  = ...

  4. Postman-----将 A 请求中 response Body 中的参数值传入到下一个请求 B 的 request body 中作为参数发送请求

    问题:将A接口中response body的"id"传入到B接口的request body中. 解决办法: 1.在A接口的test中设置环境变量. 代码:var data = JS ...

  5. dgraph解决社交关系中的正反向查找

    dgraph解决社交关系中的正反向查找 本篇介绍的是, 社交关系中的关注者与被关注者在dgraph中如何实现查找. 对dgraph的基本操作不太清楚的可以看看我之前写的博客 dgraph实现基本操作 ...

  6. hibernate 一对多关系中的孤儿属性

    @OneToMany(targetEntity = BenefitType.class, mappedBy = "sitePerson",cascade = CascadeType ...

  7. Java Web快速入门——全十讲

    Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...

  8. java锁与监视器概念 为什么wait、notify、notifyAll定义在Object中 多线程中篇(九)

    在Java中,与线程通信相关的几个方法,是定义在Object中的,大家都知道Object是Java中所有类的超类 在Java中,所有的类都是Object,借助于一个统一的形式Object,显然在有些处 ...

  9. 【Java并发编程】6、volatile关键字解析&内存模型&并发编程中三概念

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...

随机推荐

  1. iOS笔试题04

    1. Object-C有多继承吗?没有的话用什么代替?
 1> OC是单继承,没有多继承 2> 有时可以用分类category和协议protocol来代替多继承 2. Object-C有私 ...

  2. Linq to sql中继承类映射转换问题

    类型为的数据成员“Int32 VTOUID”不是类型的映射的一部分.该成员是否位于继承层次结构根节点的上方? 想躲开Linq to sql中问题限制可真是不容易: http://www.makaido ...

  3. Exploit completed, but no session was created.

    在kali上做metasploit实验,步骤如下: msf5 exploit(windows/mssql/mssql_payload) > show options Module options ...

  4. javascript DOM和DOM操作的四种基本方法

    在了解了javascript的语言特性后,javascript真正大放光彩的地方来了——这就是javascript DOM Javascript DOM DOM(Document Object Mod ...

  5. python学习-45 模块

    模块 -----模块包括三种: ····python标准库 ····第三方模块 ····应用程序自定义模块 -------应用程序自定义模块 1.建立两个py文件,一个是定义函数用的cal.py de ...

  6. 模块 time 和 datetime

    目录 时间模块time datatime time 模块 datetime 模块 时间模块time datatime time 模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(str ...

  7. WUSTOJ 1889: 编辑距离(Java)

    转自:

  8. Win10 收件箱添加QQ邮箱(2019年5月19日)

    Emmm弄的时候没截图,就语言描述吧,非常简单. 登录到网页端QQ邮箱.点我登录 登录之后,界面上端的Logo右边有个"设置"(字有点小).点它 邮箱设置下面有一堆标签,点击&qu ...

  9. Error:Could not find method google() for arguments [] on repository container

    Error:Could not find method google() for arguments [] on repository container. Consult IDE log for m ...

  10. Django——关于项目开发遇到的一些小技巧

    目录 头像图片 js获取网站信息 js获取前端信息 Dj获取刚写入的数据的信息 js跳转新链接 头像图片对象的显示 在做到根据登陆ID决定用户头像的时候,加载静态文件的{% static ‘xxxxx ...