Java之接口及其作用

来源:互联网 发布:对冲书籍 知乎 编辑:程序博客网 时间:2024/06/05 17:01

package 接口;
/*接口的基础语法
* 接口也是一种引用类型,可以等同看做类。
* 1.如何定义接口,语法:
* 【修饰符】interface接口名{}
* 2.接口中只能出现:常量,抽象方法
* 3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的。
* 4.接口中没有构造方法,无法被实例化。
* 5.接口与接口之间可以多继承。
* 6.一个类可以实现多个接口。(这里的“实现”可以等同看做“继承”)
* 7.一个非抽象的类实现接口,需要将接口中所描述的方法“实现/重写/覆盖”。
*
*/
public interface A{
//常量(必须使用public static final修饰)
public static final String SUCCESS = “success”;
public static final double PI = 3.14;
//public static final是可以省略的。
byte MAX_VALUE = 127;//常量
//抽象方法(接口中所有的抽象方法都是public abstract)
public abstract void m1();
//public abstract是可以省略的。
void m2();

}
interface B{
void m1();
}
interface C{
void m2();
}
interface D{
void m3();
}
interface E extends B,C,D{
void m4();
}
//implements是实现的意思是一个关键字,
//implements和extends意义相同。
class MyClass implements B,C{
public void m1(){};
public void m2(){};
}
class F implements E{
public void m1(){};
public void m2(){};
public void m3(){};
public void m4(){};

}

package 接口;
/*
* 客户业务部接口
* 接口的作用
* 1.可以使项目分层,所有层都面向接口开发,开发效率提高了。
* 2.接口使代码和代码之间的耦合度降低,就像内存条和主板的关系,‘变的‘可插拔’’。
*接口和抽象类都能完成某个功能,优先选择接口。
*因为接口可以多实现,多继承。
*并且一个类除了实现接口之外的,还可以去继承其他类(保留了类的继承)
*/
public interface CustumerService {
//定义一个退出系统的方法
void logout();

}
package 接口;
/*
* 编写接口实现类。
* 该类的编写完全是面向接口去实现的。
*/
public class CustumerServiceTmpl implements CustumerService{
//对接口中的抽象方法进行实现。
public void logout(){
System.out.println(“成功退出系统!”);
}
}
package 接口;
/*
* 汽车和发动机之间的接口。
* 生产汽车的厂家面向接口生产
* 生产发动机的厂家面向接口生产
*
*/
public interface Engine {
//所有的发动机都可以启动
void start();
}
package 接口;

public class yamaha implements Engine {
public void start(){
System.out.println(“yamaha启动”);
}
}
package 接口;

public class hongda implements Engine{
public void start(){
System.out.println(“hongda启动”);
}
}
package 接口;
//生产汽车
public class Car {
//Field
//引擎
//面向接口编程
Engine e;
//Constructor
Car (Engine e){
this.e=e;
}
//汽车应该能够测试引擎
public void testEngine(){
e.start();//面向接口调用
}
}
package 接口;

public class Test {
public static void main(String[] args){
//1.生产引擎
Engine e1 = new yamaha();
//2.生产汽车
Car c = new Car(e1);
//3.测试引擎
c.testEngine();
//换HONDA
c.e = new hongda();

  }

}
package 接口;

public class Test01 {
//入口
public static void main(String[] agrs){
//要执行CustomerServiceTmpl中的 logout方法
//以下程序面向接口去调用
CustumerService cs = new CustumerServiceTmpl();
//调用
cs.logout();
}
}

0 0
原创粉丝点击