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接口实现传参的更多相关文章

  1. java复用和传参

    java复用和传参的三种方法总结: (1) 直接在一个类中调用函数 : 1 package test1; 2 3 public class a 4 { 5 public static void get ...

  2. [Java]_函数传参的疑惑与思考

    问题来源于leetcode上的两道题 Path Sum I && II,分别写了两个dfs. void dfs(TreeNode node , int sum , ArrayList& ...

  3. Java的对象传参问题

    在c/c++中对于传参类型,无外乎就是传值.传引用.传指针这几种.但在java中,由于没有指针类型,其传参的方式也发生了相应的变化.之前有搜过相关的知识点一直理解的是:Java的传参方式中主要有两种: ...

  4. 在Java中动态传参调用Python脚本

    最近,又接触到一个奇葩的接口,基于老板不断催促赶时间的情况下,在重写java接口和复用已有的python脚本的两条路中选择了后者,但是其实后者并没有好很多,因为我是一个对python的认识仅限于其名称 ...

  5. SpringBoot系列: Java应用程序传参和SpringBoot参数文件

    ===========================向java 程序传参的几种形式:===========================1. 使用 OS 环境变量. 这个不推荐. 2. 使用JVM ...

  6. Java函数的传参机制

    一 最近的一个项目,里面各种返回void,参数用引用类型,那叫一个熟和多,但是也把我绕糊涂了. 我就打算好好理一理java的传参机制,整理一番 二 很多人一听Java的传参,那一定会脱口而出,java ...

  7. js 调用接口并传参

    注:需先引入 jquery.json-xx.min.js 1. 参数跟在url后面 var name = '王一'; var age = 18; $.ajax({ type : 'get', url ...

  8. java的方法传参,最容易混淆的问题!!!

    参数传递 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我们称为参数传递. 在这里 ...

  9. java后台开发传输乱码&&接口post传参失败

    起因: 前几天遇到的问题,才有时间记录,需求:本地生成xml形式的字符串以参数形式用post方法传送到对方的固定接口: 这个需求写的时候感觉很容易,本地测试的时候,也觉得很简单就过了,然后和对方联调的 ...

随机推荐

  1. NAT穿透解决

    1.各种网络环境下的P2P通信解决方法: (1)如果通信双方在同一个局域网内,这种情况下可以不借助任何外力直接通过内网地址通信即可:   (2)如果通信双方都在有独立的公网地址,这种情况下当然可以不借 ...

  2. thinkPHP实现APP微信支付

    控制器 class Pay extends Controller { const WX_PAY_URL = "https://api.mch.weixin.qq.com/pay/unifie ...

  3. 【webpack系列】从零搭建 webpack4+react 脚手架(五)

    本章节,我们一起来探讨以下问题:如何对编译后的文件进行gzip压缩,如何让开发环境的控制台输出更加高逼格,如何更好的对编译后的文件进行bundle分析等. 1 gzip压缩 如果你想节省带宽提高网站速 ...

  4. C# 返回JSON格式化统一标准

    public class BackJson { public int code { get; set; } public string msg { get; set; } public string ...

  5. 常见的JDBC驱动程序名称和数据库URL

    RDBMS                                                                              JDBC驱动程序名称        ...

  6. java并发编程可见性与线程封闭

    可见性 所谓可见性,指的是当一个线程修改了对象的状态后,其他线程能够看到该对象发生的变化.在单线程环境下,向某个变量写入值,然后在后面的操作再读取,在这个过程中该变量的值对该线程来说总是可见.但是,在 ...

  7. docker-compose模板文件

    mysql.redis.asp.net core项目应用程序三个常见的docker-compose文件模板参考: version: "3" services: mysql: res ...

  8. Win10 教育版

    Windows 10 版本 1607 引入了专为 K-12 机构的特有需求而设计的两个版本:Windows 10 专业教育版和 Windows 10 教育版. 这些版本为不断发展的 K-12 教育 I ...

  9. 开始食用grpc(之一)

    开始食用grpc(之一) 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9501353.html ```   记一次和一锅们压马路,路过一咖啡厅(某巴克),随口 ...

  10. 数据库和Content Provider

    SQLite提供了强大的SQL数据库的库文件,从而使应用程序拥有一个具备完全控制权的健壮的持久化层. Content Provider实现在应用程序内和应用程序之间存储.共享和使用结构化数据.通过将数 ...