package com.aowin.define;
//接口是定义一个合约
//接口也是一种数据类型
//定义接口使用interface关键字
/*
* public interface 接口名称{}
* 接口中的成员变量均为public static final的
* 接口中的方法均为公共抽象的,public abstract,abstract修饰的方法没有方法体
*
* public interface 接口名称 extends 接口1,接口2...{}
* 接口可以继承别的接口使用extends关键字,而且接口的继承是多继承,这一点可以弥补类是单继承的缺陷 *
*/
//接口可以声明引用变量,但不能直接new创建对象
//类实现接口使用implements关键字,然后创建实现类的对象
//类实现接口是多实现的,implements接多个接口名称,之间用,隔开
/*
* class 类名 implements 接口1,接口2....{}
* 类中要为所有接口的抽象方法提供具体实现
*
* abstract class 类名 implements 接口1,接口2...{}
* 抽象类不必为所有的抽象方法提供具体实现
*
*/
//接口也可以使用多态
public interface Usbable {
//成员
public static final int I=100;
double PI=3.14; //public static final可以省略不写
//方法
public abstract void read();
void write(); //public abstract可以省略不写
}
package com.aowin.define;
public class Test {
public static void main(String[] args) {
Usbable usb1;
//usb1 = new Usbable();
usb1 = new Keyboard("dell",50.0);
usb1.read();
Usbable usb2 = new Mouse();
usb2.read();
Usbable[] arr = {usb1,usb2,new Mouse()};
}
}
package com.aowin.define;
public interface Aable {
void a();
}
package com.aowin.define;
public interface Bable {
void b();
}
package com.aowin.define;
public interface Cable extends Aable,Bable{
}
package com.aowin.define;
public class Keyboard implements Usbable{
private String brand;
private double price;
public Keyboard(String brand, double price) {
super();
this.brand = brand;
this.price = price;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public void read() {
System.out.println("读取键盘字符...");
}
@Override
public void write() {
// TODO Auto-generated method stub
}
}
package com.aowin.define;
public class Mouse extends Object implements Usbable, Cable{
@Override
public void a() {
// TODO Auto-generated method stub
}
@Override
public void b() {
// TODO Auto-generated method stub
}
@Override
public void read() {
System.out.println("读取鼠标光标位置...");
System.out.println("PI="+PI);
}
@Override
public void write() {
// TODO Auto-generated method stub
}
}
转载于:https://my.oschina.net/Watto/blog/873530