接口是一种特殊的抽象类,接口只提供了方法的原形,当没有具体的方法实现。子类必须提供父类中抽象方法的实现方式。接口与抽象类一样,也能定义抽象的方法,并且接口中只能包含抽象的方法,不能有常量、初始化块和构造函数。就像手机模型,只是模型只是壳子

package text5; interface Student1 { int clas = 0604; void learning(); void eat(); void sleep(); } class Student implements Student1 { public static void main(String[] args) { Student stu=new Student(); stu.learning(); } @Override public void learning() { System.out.println("学生在学习"); } @Override public void eat() { // TODO Auto-generated method stub System.out.println("学正在吃饭"); } @Override public void sleep() { // TODO Auto-generated method stub System.out.println("学生在睡觉"); } }
接口的方法都是抽象类,并没有方法具体的实现,接口中的方法必须由接口的实现类来实现。
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:

package Locker; public abstract class Door { public abstract void open(); public abstract void close(); }
TheftproofDoor;

package Locker; public class TheftproofDoor extends Door implements Lock { @Override public void lockup() { // TODO Auto-generated method stub System.out.println("关锁"); } @Override public void lockopen() { // TODO Auto-generated method stub System.out.println("开锁"); } @Override public void open() { // TODO Auto-generated method stub System.out.println("开门"); } @Override public void close() { // TODO Auto-generated method stub System.out.println("关门"); } }
Lock:

package Locker; public interface Lock { void lockup(); void lockopen(); }
Test;

package Locker; public class Test { public static void main(String[] args) { TheftproofDoor door = new TheftproofDoor(); door.close(); door.lockup(); door.lockopen(); door.open(); } }