赞
踩
- 概念:如果一个类中所有的方法都是抽方法,则这个类就可以表示为Java中另外一种类型,即接口。
- 接口是一种特殊的抽象类。
接口定义格式:
- [修饰符] interface <接口名> extends 父类接口1,父类接口2...
- {
- //属性和方法的定义
- }
- 接口的结构与类完全相同。
- 接口的访问控制修饰符与类一样, 但只有public和默认两种。
- 接口的声明要使用关键字interface,声明类的关键字是class。
- 接口中所有的方法都是抽象方法,默认的修饰符为“public abstrecr".在定义中可以省略。例如,“void eat ();” 表示定义了一个抽象方法eat ()。
- 接口中所有的变量都是全局常量,默认的修饰符为“publice static final", 在定义中可以省略。例如,“int a=10;"表示定义了一个全局常量a。
- 接口可以继承多个其他接口,即通过接口实现了多重继承。
- 接口不能被实例化,接口中没有构造方法,需要通过一个类来实现接口中所有抽象方法,才能被实例化,这个类可以称为接口的实现类。实现接口使用关键字implements。
- implements可以实现多个接口。
- 实现接口必须重写接口中的方法。
- 接口的本质是契约。
接口的作用:
- 约束
- 定义一些方法,让不同的人实现。
- 接口中默认的方法:public abstract
案例一
定义两个接口:UserService、TimeService
- public interface UserService {
- //定义一个属性 (常量)public static final
- int AGE = 69;
- //接口都需要有实现类
- //接口中的所有定义方法都是抽象的 public abstract
- //定义四个方法
- void add(String name);
- void delete(String name);
- void update(String name);
- void query(String name);
- }
- public interface TimeService{
- void timer();
- }
定义一个实现类:UserServiceImpl
- //实现接口的类,需要重写接口中的方法
- //一个类可以实现接口,通过关键字implements
- //
- public class UserServiceImpl implements UserService,TimeService{//利用接口实现多继承
- @Override
- public void add(String name) {
-
- }
-
- @Override
- public void delete(String name) {
-
- }
-
- @Override
- public void update(String name) {
-
- }
-
- @Override
- public void query(String name) {
-
- }
-
- @Override
- public void timer() {
-
- }
- }
案例二
创建一个接口,定义两个方法
- public interface UserService {
- void eat();
- void run();
- }
创建两个子类,定义方法的具体细节。
- public class Person implements UserService{
- @Override
- public void eat() {
- System.out.println("大家在吃东西");
- }
- @Override
- public void run() {
- System.out.println("大家在跑步");
- }
- }
- public class Student implements UserService{
- @Override
- public void eat() {
- System.out.println("学生在吃零食");
- }
-
- @Override
- public void run() {
- System.out.println("学生在跑步");
- }
- }
创建一个Application类
- public class Application{
- public static void main(String[] args) {
- Person person = new Person();
- Student student = new Student();
- person.run();
- person.eat();
- student.run();
- student.eat();
-
- }
- }
运行结果:
案例三:接口的多继承
创建两个接口
- public interface TimeService {
- void eat();
- }
- public interface UserService {
- void run();
- }
创建两个子类
- public class Person {
- String name = "林枫";
- int age = 20;
- public void show(){
- System.out.println("姓名:"+name+"\t年龄:"+age);
- }
- }
- public class Student extends Person implements TimeService,UserService{
- @Override
- public void eat() {
- System.out.println("在吃饭");
- }
-
- @Override
- public void run() {
- System.out.println("在比赛");
- }
- }
创建一个Application类
- public class Application {
- public static void main(String[] args) {
- Person person = new Person();
- Student student = new Student();
- student.show();
- student.eat();
- student.run();
- }
- }
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。