每日一学(15)——(面向对象)接口作为方法参数与返回值

接口作为方法参数传递

接口作为方法参数的情况是很常见的,经常会碰到。当遇到方法参数为接口类型时,那么该方法要传入一个接口实现类对象。如下代码演示。

package day14;
//接口作为方法参数传递
public interface smoking {
 public static final int A=1;
  public abstract void smoking();
}

package day14;
//接口的实现类
public class student implements smoking {

    public void smoking() {
        System.out.println("禁止吸烟");
    }
}

package day14;
//测试类,接口作为方法参数传递
public class TestSmokingArgument {
  public static void main(String[] args) {
      //调用nosmoking方法,传递实现类对象
      //实现类对象是自己的对象
      student p=new student();
      nosmoking(p);
      nosmoking(new student());//匿名对象    

      //用多态调用也可以,两种方式
      smoking s=new student();
      nosmoking(p);

}
  /*
   * 定义方法,方法参数,接口类型
   * 方法的参数是smoking的接口类型
   * 调用方法,必须传递接口的任意实现类的对象
   */

  public static void nosmoking(smoking s){
      //调用接口中的常量A
      System.out.println(smoking.A);
      //接口的引用变量s,调用方法
      s.smoking();
  }

接口作为返回值方法传递 

接口作为方法返回值的情况,在后面的学习中会碰到。当遇到方法返回值是接口类型时,那么该方法需要返回一个接口实现类对象。如下代码演示。

package day14;
//接口作为方法返回值
public class Getsmoking {
    /*
     * 定义方法,方法的返回值是接口类型
     * 接口是不能创建对象,return语句后面返回的是他实现类的对象
     */
    public  smoking getsmoking(){
        return new student();
        
    }

package day14;

public class getsmokingReturn {
  public static void main(String[] args) {
      //调用Getsmoking类的方法getsmoking获取smoking接口的实现类的对象
      Getsmoking s=new Getsmoking();
      smoking p =s.getsmoking();//方法的执行结果是接口的实现类对象 new student
      p.smoking();
}
}

猜你喜欢

转载自blog.csdn.net/weixin_42517286/article/details/81302961
今日推荐