接口是一种特殊的抽象类,接口只提供了方法的原形,当没有具体的方法实现。子类必须提供父类中抽象方法的实现方式。接口与抽象类一样,也能定义抽象的方法,并且接口中只能包含抽象的方法,不能有常量、初始化块和构造函数。就像手机模型,只是模型只是壳子
packagetext5;interfaceStudent1 {int clas = 0604;voidlearning();voideat();voidsleep();
}class Student implementsStudent1 {public static voidmain(String[] args) {
Student stu=newStudent();
stu.learning();
}
@Overridepublic voidlearning() {
System.out.println("学生在学习");
}
@Overridepublic voideat() {//TODO Auto-generated method stub
System.out.println("学正在吃饭");
}
@Overridepublic voidsleep() {//TODO Auto-generated method stub
System.out.println("学生在睡觉");
}
}
View Code
接口的方法都是抽象类,并没有方法具体的实现,接口中的方法必须由接口的实现类来实现。
java接口的归纳:
1.java接口中的成员变量,默认都是public,static,final型的,而对于public static final可以省略,接口中的成员变量为常量,建议全部使用大写,单词之间用"_"分隔
2.接口方法默认是public abstract型的,可省略,Java种方法没有方法体不能实例化
3.java接口中只能包含public static final类型的成员变量和public abstract 类型的成员方法
使用接口设计:
1.防盗门功能
2.手机功能
3.组装一台计算机
4.打印机打印
门有开关两种功能,锁有上锁开锁两功能,防盗门可以继承门同时继承锁么?
将门定义为抽象类,锁定义为接口,防盗门继承门,实现锁的接口
接口特性:
1.不可被实例化
2.实现类必须实现接口的所有方法
3.实现类可以实现多个接口
4.接口中的变量都为静态变量‘
防盗门是个门,is a 关系
防盗门有个锁:has a 关系
Door:
packageLocker;public abstract classDoor {public abstract voidopen();public abstract voidclose();
}
View Code
TheftproofDoor;
packageLocker;public class TheftproofDoor extends Door implementsLock {
@Overridepublic voidlockup() {//TODO Auto-generated method stub
System.out.println("关锁");
}
@Overridepublic voidlockopen() {//TODO Auto-generated method stub
System.out.println("开锁");
}
@Overridepublic voidopen() {//TODO Auto-generated method stub
System.out.println("开门");
}
@Overridepublic voidclose() {//TODO Auto-generated method stub
System.out.println("关门");
}
}
View Code
Lock:
packageLocker;public interfaceLock {voidlockup();voidlockopen();
}
View Code
Test;
packageLocker;public classTest {public static voidmain(String[] args) {
TheftproofDoor door= newTheftproofDoor();
door.close();
door.lockup();
door.lockopen();
door.open();
}
}
View Code