package com.gezhi.interfaces;

/**

* 新建一个dog类实现接口livingable(狗吃和上厕所都是与生俱来的不应该写成接口)

* @author square 凉

*

*/

public class Dog implements Livingable{

private String dogName;

private int dogAge;

public String getDogName() {

return dogName;

}

public void setDogName(String dogName) {

this.dogName = dogName;

}

public int getDogAge() {

return dogAge;

}

public void setDogAge(int dogAge) {

this.dogAge = dogAge;

}

public void eat() {

System.out.println(dogName + " 具有吃东西的能力");

}

public void wc() {

System.out.println(dogName +" 具有上厕所的能力");

}

}

package com.gezhi.interfaces;

/**

* 人类,也实现接口吃饭上厕所的能力(当然吃和上厕所是与生俱来的能力,不应该写成接口)

* @author square 凉

*

*/

public class People implements Livingable , ThinkAble{

private String peopleName;

private int peopleAge;

public String getPeopleName() {

return peopleName;

}

public void setPeopleName(String peopleName) {

this.peopleName = peopleName;

}

public int getPeopleAge() {

return peopleAge;

}

public void setPeopleAge(int peopleAge) {

this.peopleAge = peopleAge;

}

public void eat() {

System.out.println(peopleName + "  具有吃东西的能力");

}

public void wc() {

System.out.println(peopleName +" 具有上厕所的能力");

}

@Override

public void think() {

// TODO Auto-generated method stub

System.out.println(peopleName + "  具有思考的行为");

}

}

package com.gezhi.interfaces;

/**

* 建一个服务类服务living这种能力

* @author square 凉

*

*/

public class Service {

/**

* 服务其他生物的行为

*/

public void serviceOther(Livingable lb) {

lb.eat();

lb.wc();

}

/**

* 人具有思考的行为,这个方法主要传个人(这里传了一个接口的参数,人类来实现它,主要运用了多态的特性)

* @param think

*/

public void ThinkOthers(ThinkAble think) {

think.think();

}

}

package com.gezhi.interfaces;

/**

* 思考的能力

* @author square 凉

*

*/

public interface ThinkAble {

void think();

}

package com.gezhi.interfaces;

/**

* 函数主入口类

* @author square 凉

*

*/

public class MainEnter {

public static void main(String[] args) {

// TODO Auto-generated method stub

Service se = new Service();//实例化服务类一个对象

People p = new People();//实例化人一个对象

p.setPeopleName("如花");//设置人名

se.serviceOther(p);//调用服务类的serviceOthers这个方法(本来这个参数是接口livingable的,这里小转大,传个人这个实现了接口的对象)

Dog d = new Dog();//实例化一个狗类

d.setDogName("莽子");

se.serviceOther(d);

se.ThinkOthers(p);

}

}

java向接口传参_Java接口实现传参相关推荐

  1. vue组件间通信传递数据的四种方式(路由传参、父子组件传参、兄弟组件传参、深层次传参)

    前言: vue组件间通信对于经常来写vue的伙伴来说应该是很轻松的,对于一些刚入门的伙伴来说可能就有些迷茫,感觉方式有很多种,但是总结起来又不知道应该怎么说,在下面的文章中,我结合自己的开发过程中经常 ...

  2. C/C++ 一维数组的传参/一级指针的传参 二维数组的传参/二级指针的传参 三维数组的传参/三级指针的传参 方法总结分析终极篇

    序 最近复习c/c++数组的传参,发现了一些问题,下面是一些总结和思考 正文 一维数组的传参/一级指针的传参/普通指针 在理解指针的基础上,一维数组的指针传递很简单,我们知道数组的数组名就是这个数组首 ...

  3. vue 组件之间传值 父转子,子传父,同级别之间的传参,跨级别传参

    写这篇文章之前,我对vue组件之间的传值,还是只知道一些基础的传值方式.虽然工作中勉强能够应对,但是想要行云流水感觉还是心有余而力不足,所以在此,我想总结一下vue组件之间的一些传值方式供大家参考,同 ...

  4. java类的对象无参与有参_java无参与有参以及setter和getter方法(了解)

    第一题:分析以下需求,并用代码实现 手机类Phone 属性: 品牌brand 价格price 行为: 打电话call() 发短信sendMessage() 玩游戏playGame() 要求: 1.按照 ...

  5. java方法的传递方式_JAVA基础--方法传参

    JAVA基础--方法传参 为啥拿这个当话题? 在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然. 一.先说说参数传递的几个术语: 值调用(call by vale):表示方法接收的是调用 ...

  6. java实体类实现抽象类_java接口、抽象类、实体类关系介绍

    接口:接口是一个引用类型,与类相似,不过在接口中只能包含常量,方法名和嵌套类型.没有构造器,所以不能被实例化只能被类所实现或者被另外的接口所继承.在接口中声明的方法没有方法体. 抽象类:将类层次中共有 ...

  7. java无参_Java——类的无参、带参方法

    >类的无参方法 什么是类的方法 类是由一组具有相同属性和共同行为的实体抽象而来.对象执行的操作是通过编写类的方法实现的.显而易见,类的方法是一个功能模块,其作用是"做一件事情" ...

  8. java导出Excel(POI模式 Ajax下载 Post传参) bootstrap table getVisibleColumns获取显示的列

    工具类 (正式使用) package com.qyj.utils;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. ...

  9. react更改路由入参_react怎么路由传参?

    react路由传参(4种方式) 1.通过params传参(刷新页面后参数不消失,参数会在地址栏显示) 路由页面: //注意要配置 /:id 路由跳转并传递参数:链接方式:XX //或: XXjs方式: ...

最新文章

  1. (转)oracle审计详解
  2. PHP获取一段时间内的每个周几, 每月几号, 遇到特殊日子就往后延
  3. android - 调用系统分享功能分享图片
  4. 如何配置cmd操作XAMPP中的MYSQL的运行环境?
  5. 创新创业_创业基础_课后作业
  6. 木质机器人挂坠_设计癖 2014 大盘点:十大木质产品
  7. JS 获取当前页面url(不含参数)
  8. 怎么用计算机表示素数,在线质数(素数)计算器
  9. 微信域名防屏蔽防封系统,轻松微信中域名网站被屏蔽被封的问题
  10. c语言do while例子,C语言do while循环
  11. 南京银行网站连接不到服务器,南京银行网络准入控制平台
  12. java地铁最短距离_北京地铁最短路径(Java+Dijkstra算法)
  13. 2019年新个税计算器及源代码
  14. 微信和QQ内置浏览器停止访问该网页,微信域名被屏蔽的解决方案
  15. mysql数据设置有效期_zabbix管理六之数据有效期设置
  16. Wrong namespace. Expected ‘com.baizhi.mapper.UserMapper‘ but found ‘com.com.baizhi.mapper.UserMappe
  17. 一个显示农历的日历小程序
  18. 事业单位文档管理解决方案
  19. Ubuntu 18.04中设置1920x1080_60.00分辨率和刷新率
  20. 计算机视觉 学习笔记(三)全景拼接

热门文章

  1. pycharm单步调试
  2. jsx语法技巧vue
  3. C++函数与结构体——歌唱比赛
  4. 网络地址分类与私有/特殊地址
  5. 亡羊补牢,为时不晚?
  6. 模拟水果商店买卖过程
  7. c语言数组中define,c语言中#define的用法
  8. PHP——个人信息管理系统
  9. 机器翻译前沿十问:开源来源于无私的分享 | 东北大学肖桐专访
  10. 苹果添加APP ID和APP证书