1.类是类,接口是接口,他们是同一层次的概念。
2.接口没有构造器。
3.在jdk1.8之前,接口只有两部分内容:
(1)常量:固定修饰符public static final
(2)抽象方法:固定修饰符public abstract
注意:修饰符可以不写,IDEA会帮你自动补全。
4.类和接口的关系是实现关系,类实现接口。
6.一旦实现一个接口,那么实现类要重写接口中全部的抽象方法。
7.如果没有全部重写抽象方法,那么这个类可以变成一个抽象类。
8.Java只有单继承,Java还有多实现
一个类继承其他类,只能继承一个父类,但是实现接口的话,可以实现多个接口。
9.写法:先继承,再实现。
10.接口不能创建对象。
接口的作用:定义规则,只是跟抽象类不同地方,他是接口不是类,接口定义好规则后,实现类负责实现即可。
例:防盗门实现开锁上锁,门铃,拍照的功能
写一个门的类
package interfacedemo; public abstract class Door { //开门 public abstract void openDoor(); //关门 public abstract void closeDoor(); }
写一个门铃的接口
package interfacedemo; public interface DoorBell { //拍照存储 public abstract void photo(); }
写一个锁的接口
package interfacedemo; public interface Lock { //开锁 public abstract void openLock(); //上锁 public abstract void closeLock(); }
写一个防盗门继承门并且实现门锁和门铃的代码
package interfacedemo; public class LockDoor extends Door implements Lock,DoorBell{ @Override public void openDoor() { System.out.println("我开门了"); } @Override public void closeDoor() { System.out.println("我关门了"); } @Override public void openLock() { System.out.println("开锁"); } @Override public void closeLock() { System.out.println("上锁"); } @Override public void photo() { System.out.println("咔嚓咔嚓,你被照上了,图片以被保存"); } }
最后在写一个测试类
package interfacedemo; public class TestLockDoor { public static void main(String[] args) { LockDoor lockDoor = new LockDoor(); lockDoor.openLock(); lockDoor.openDoor(); lockDoor.closeDoor(); lockDoor.closeLock(); lockDoor.photo(); } }
这样一来门即有防盗的功能,也有门铃和拍照的功能。