接口基础
接口
- 声明类的关键词是class,声明接口的关键词是interface
- 接口的本质是契约,就像法律一样,制定好后需要大家遵守。
-
普通类:只有具体的实现
-
抽象类:具体的实现(正常方法)和规范(抽象方法)都有
-
接口:只有规范(抽象方法)!自己无法写正常方法(更抽象的抽象,专业的约束!约束和实现分离:面向接口编程)
-
定义接口的关键词:interface
-
public interface UserService {}
-
-
接口中定义的属性都必须是常量,很少使用
-
public static final int AGE = 88;package com.oop.demo10; //interface 定义接口的关键字 ,接口都需要有实现类 public interface UserService { //接口中所有定义的属性都是常量 public static final int AGE = 98; int AGE1 = 88; }
接口中定义的方法必须是抽象方法,必须在实现接口时重写该方法
-
通过
abstract关键词定义在接口里的抽象方法 -
接口里写正常方法是会报错的
public void run(){}-
接口1
package com.oop.demo10; //interface 定义接口的关键字 ,接口都需要有实现类 public interface UserService { // public void run(){}//接口里不让写正常方法 //接口中的所有定义的方法都是抽象的 abstract public abstract void run1(); //直接简化写法 void add(String name); void del(String name); void update(String name); void query(String name); } -
接口2
package com.oop.demo10; public interface TimeService { void time(); } -
通过implement实现接口,必须重写抽象方法。(伪多继承)
- 抽象类可以使用extends关键词实现子类对抽象父类的单继承,然后重写父类的抽象方法,但单继承有局限性。
- 类 可以实现接口,通过implement关键词就可以使类实现接口,也必须重写接口里的抽象方法。
- 实现接口的类必须要重写接口中的抽象方法。
package com.oop.demo10; public class UserServiceImpl implements UserService,TimeService{//利用接口实现多继承,继承了两个 public UserServiceImpl() { super(); } @Override public void run1() { } @Override public void add(String name) { } @Override public void del(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } @Override public void time() { } }
-
接口的作用
- 接口是一个约束
- 可以在接口里定义一些抽象方法(public abstract),让不同的人实现(通过implement关键词,在类的重写)
- 接口不能直接别实例化,这点和抽象类一样,因为接口中没有构造方法
- 通过implement关键词可以同时实现多个接口,实现接口必须要重写里面的抽象方法,这也就是不同人一起实现接口的途径。

浙公网安备 33010602011771号