您的位置:首页 > 编程语言 > Java开发

java笔记第九章之接口

2012-09-24 21:12 225 查看
第九章  接口

@;主要内容:接口的概念,接口的多继承,子类的多实现 ,使用接口的好处

#接口的概念:接口是特殊的抽象类

 接口中 1,属性必须是公开静态常量 2.方法必须是公开抽象方法(接口中没有抽象方法)

 interface MyInterface{

public static final int value=10; //常量

public abstract void m1();

}

上面是接口的标准写法 但实际中一般都写成

  interface MyInterface{

int value=10; //此处表示常量

void m1();

}

#implements 关键字 就类似于子类继承抽象方法

#接口不能创建对象,只能声明了引用,声明了引用让引用指向它的子类

#接口的继承:

 interface A{ interface B extends A{

void m1(); void m2;

} }

Class MyClass implements B{

public void m1(){};

public void m2(){};

}

 MyClass m1=new MyClass()

A b2=new MyClass();

B b3=n32 MyClass();

通过b2只能访问m1()方法,通过m3可以访问m1,m2方法

#注意:实现接口就必须全部实现完里面的全部抽象方法,如果还有没有实现的方法,那么这个类还是抽象类

#接口的多继承

interface IA{ interface IB{    interface IC extends IA,IB{

void m2() void m3();

void m1(); }                             }

}

#子类的多实现 1,接口之间可以多继承,多个之间用逗号分隔 2,子类可以多实现接口 3,子类的多实现同时还可以继承一个父类(extends 在implements之前)

#,接口的好处:1,增加程序的通用性(方法的参数要声明成接口类型。方法的返回值要声明成接口型)

  2,接口实现了特殊的多继承,以后抽象类用的比较少,多使用接口

       3,解耦合

例如:有个台灯,装红灯和绿灯

台灯-》红灯   当装率灯泡是台灯的内部构造都要改,因为台灯和灯泡的关系太密切

台灯—》接口—》灯泡  灯泡实现了接口 不论装什么颜色的灯泡,内部构造都不用改,修改代码的量减少了 方便多了,

不用接口:public class GreenBuble {

public void light(){

System.out.println("green");

}

}

public class Lamp {

GreenBuble greenBuble;

RedBuble redBuble;

public void setRedBuble(RedBuble redBuble) {

this.redBuble = redBuble;

}

public void trunOn1(){

redBuble.light();

}

public void setGreenBuble(GreenBuble greenBuble) {

this.greenBuble = greenBuble;

}

public void trunOn(){

greenBuble.light();

}

}

public class RedBuble {

public void light(){

System.out.println("red");

}

}

public class Test {

public static void main(String[] args) {

GreenBuble greenBuble1=new GreenBuble();

RedBuble redBuble1=new RedBuble();

Lamp lamp1=new Lamp();

lamp1.setGreenBuble(greenBuble1);//现在安得是绿灯,准备想安红灯

//lamp1.setGreenBuble(RedBuble);在这里直接安红灯不可以,要到台灯里面改构造

lamp1.setRedBuble(redBuble1);

lamp1.trunOn1();//红灯也亮了

lamp1.trunOn();

4000

}

}

代码如下:接口的好处1,public interface Buble {  //先定义了接口

public abstract void light();

}

public class GreenBuble implements Buble {

@Override

public void light(){

System.out.println("green");

}

}

package net.nyist.com.ch09.ex02;

public class Lamp {

Buble buble;

public void setBuble(Buble buble) {

this.buble = buble;

}

public void trunOn(){

buble.light();

}

}

public class RedBuble implements Buble{

public void light(){

System.out.println("red");

}

}

public class Test {

public static void main(String[] args) {

Lamp lamp=new Lamp();

Buble buble=new GreenBuble();

lamp.setBuble(buble);

lamp.trunOn();

Buble buble2=new RedBuble();

lamp.setBuble(buble2);

lamp.trunOn();

Buble buble3=new BlueBuble();

lamp.setBuble(buble3);

lamp.trunOn();

}

}

通过上面的可以体现出来接口的好处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java string