Java 中的多态,一次讲个够之接口实现关系中的多态
上文还没有写完,这一篇继续
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 中的多态,一次讲个够之接口实现关系中的多态的更多相关文章
- java 接口实现关系下的多态
2019独角兽企业重金招聘Python工程师标准>>> 多态: 父类的引用类型变量指向了子类的对象 或者 是接口类型的引用类型变量指向了接口实现类的对象. 实现关系下的多态: ...
- 《Entity Framework 6 Recipes》中文翻译系列 (41) ------ 第七章 使用对象服务之标识关系中使用依赖实体与异步查询保存
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-7 标识关系中使用依赖实体 问题 你想在标识关系中插入,更新和删除一个依赖实体 ...
- JAVA_SE基础——50.接口关系下的多态
接口关系下的多态和继承关系下的多态 相差无几,应该更简单些~ 多态: 父类的引用类型变量指向了子类的对象或者是接口类型的引用类型变量指向了接口实现类 的对象. 实现关系下的多态: 接口 变量 = ...
- Postman-----将 A 请求中 response Body 中的参数值传入到下一个请求 B 的 request body 中作为参数发送请求
问题:将A接口中response body的"id"传入到B接口的request body中. 解决办法: 1.在A接口的test中设置环境变量. 代码:var data = JS ...
- dgraph解决社交关系中的正反向查找
dgraph解决社交关系中的正反向查找 本篇介绍的是, 社交关系中的关注者与被关注者在dgraph中如何实现查找. 对dgraph的基本操作不太清楚的可以看看我之前写的博客 dgraph实现基本操作 ...
- hibernate 一对多关系中的孤儿属性
@OneToMany(targetEntity = BenefitType.class, mappedBy = "sitePerson",cascade = CascadeType ...
- Java Web快速入门——全十讲
Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...
- java锁与监视器概念 为什么wait、notify、notifyAll定义在Object中 多线程中篇(九)
在Java中,与线程通信相关的几个方法,是定义在Object中的,大家都知道Object是Java中所有类的超类 在Java中,所有的类都是Object,借助于一个统一的形式Object,显然在有些处 ...
- 【Java并发编程】6、volatile关键字解析&内存模型&并发编程中三概念
volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...
随机推荐
- 用MOQ来Mock静态方法的 2种方法(含Moq和Fakes的配合使用)
Moq是无法直接模拟静态方法的,解决方式有两种: 1.需要修改正式代码,在源代码中建一个新的方法把静态方法包起来,调用的时候源代码调用时调用新方法而不是原来的静态方法. 在测试的时候,Mock掉这个新 ...
- 接着上次的python爬虫,今天进阶一哈,局部解析爬取网页数据
*解析网页数据的仓库 用Beatifulsoup基于lxml包lxml包基于html和xml的标记语言的解析包.可以去解析网页的内容,把我们想要的提取出来. 第一步.导入两个包,项目中必须包含beau ...
- Egret入门学习日记 --- 第十一篇(书中 4.1~4.6节 内容)
第十一篇(书中 4.1~4.6节 内容) 好了,到了这篇开始,前三章都记录完了. 接下来就是到第四章了. 4.1节 的内容总结一下重点: 1.resource目录下default.res.json文件 ...
- COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
初始化 加上参数 --collation-server=utf8_general_ci 初始化 ./scripts/mysql_install_db --user=mysql --basedir=/u ...
- bootstrap基础学习【导航条、分页导航】(五)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated;
/Users/jerryqi/PycharmProjects/DeepLearning/venv/lib/python3.7/site-packages/tensorflow/python/frame ...
- PowerShell->>获取本地计算机的用户组和组成员
获取本地计算机的用户组和组成员 function Get-LocalGroups() { net localgroup | ?{ $_ -match "^\*.*" } | %{ ...
- MySQL的sql语言分类DML、DQL、DDL、DCL
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...
- go 常量2
数值常量 数值常量是高精度的 _值_. 一个未指定类型的常量由上下文来决定其类型. 也尝试一下输出 needInt(Big) 吧. package main import "fmt" ...
- java. util. concurrent. atomic
一.原子更新基本类型 AtomicInteger AtomicBoolean AtomicLong 二.原子更新数组 AtomicIntegerArray AtomicLongArray Atomic ...