接口

来源:互联网 发布:2017淘宝流量突然暴跌 编辑:程序博客网 时间:2024/05/22 06:51





单继承丧失了丰富度,因此使用接口来补充丰富度缺失的问题;
案例: 实现汽车的发动机调试、换机油动作
以下特殊情况, ①车以外的抽象类,交通工具、战斗机;
②交通工具以外的机械;
因此,导致了抽象类以外的具有相同方法的如何定义? 避免将方法一次绑定死!! 相同行为在其他抽象类中重复定义!!!脱离继承树的限制实现继承,提高扩展性和自由度;

1、在jdk1.8中接口拥有可以书写实现了的方法:
public interface Test { //接口命名
public final static int a = 100; //属性书写;
public abstract void turnupEnginee( ); //方法书写;

public default void methodA(){
//接口方法实现;
}
}


2、接口实现方法: // 类实现接口 服务
public class Tank implements Serviceable{

}

3、实现接口的同时还能实现继承 // 抽象方法也可以多现实接口
抽象方法的子类是否都有的接口类型是什么:
public abstract class Car implements ChangeOilable , TurnupEngineeable{
} 公开访问的抽象类 汽车 实现接口 换机油 和调试发动机 ;
public class Alto extends Car{
}

子类要继承抽象类的什么行为;还需要自己增加哪些接口
public class Alto extends Car implements ChangeOilable, TurnupEngineeable{
} 公开访问类 奥拓车继承了车的开车 实现了接口换机油和调试发动机;


4、接口继承接口
public interface Serviceable extends ChangeOilable , TurnupEngineeable{
public void methodA( );
}

5、使用
方法: 重载 -- 构造器 对本类的方法进行不同形参传入的书写(吃饭的不同工具);
继承: 重写 本类引用指向本类对象;
多态: 重写 + 动态绑定 父类引用指向子类对象;
接口: 接口引用指向实现类的对象;
案例: ChangeOilable audi = new Audi();

①通过实现接口暴露信息
第一步:
public interface Payable{
public void computePay ( int hoursWorked );
public void mailCheck ( );
}
支付接口 可以直接实现计算工资 和 邮寄的行为; 给个接口给其形参,就可以直接调用这些方法;
第二步:将以上接口定义的方法,在Employee类中实现; 把计算工资和邮寄行为进行具体实现;
第三步:在其他类中书写的方法通过实参传入进去

②通过实现接口强制具有某些行为
第一步:设计接口的具体的方法(包含各种存放属性的方法);
第二步,将该接口传入一个类中的方法的形参,在方法中将信息保存在一个数组中;
该类中的其它所有方法都调用该数组中的接口方法;
因此,要实现该类的方法就必须传入一个接口的实现实例化对象
第三步,具体实现一个接口类;
接口类实例化之后,将其传入上个类实例化调用的方法的形参;

0 0
原创粉丝点击