24、面向对象09 接口

接口

  • 普通类:只有具体实现

  • 抽象类:具体实现和规范(抽象方法)都有

  • 接口:只有规范(可以将约束和实现分离)

声明类的关键字是class,声明接口的关键字为interface

接口都需要有实现类

  • 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是……则必须……”的思想

  • 接口的本质是契约,就像我们的法律一样,制定好后大家都要遵守

  • 面向对象的精髓,是对对象的抽象,能体现出这一点的就是接口。设计模式所研究的,实际上就是如何合理地去抽象

  • 定义了一个UserService的接口,并定义了4个方法

  • 注意事项:

    • 1、接口里面只有方法声明,没有方法的具体实现

    • 2、接口里面所有方法默认都是public abstract的

    • 3、 接口里面的所有属性默认都是public static final 的

    • 4、接口里面的所有抽象方法都必须由对应的实现类来实现

package OOP.Demointerface;
​
//interface 定义接口的关键字    接口都需要有实现类
public interface UserService {
    double PI = 3.14;
   //定义4个增删改查的方法(没有具体的实现,只有返回值类型、方法名和参数列表),如需实现接口里面的方法,必须创建一个对应方法的实现类,同过  实现类  来重写接口里面的方法来实现方法        
 
   void add(String name);
   void delete(String name);
   void update(String name);
   void query(String name);
}

接着带定义一个TimeService的接口,并定义了一个方法(可以定义多个接口,后用implements关键字类实现接口)

package OOP.Demointerface;
​
public interface TimeService {
   void timer();
}

通过implements关键字,并重写两个接口的所有方法来实现接口多继承

package OOP.Demointerface;
​
//抽象类   需要extends    存在局限性:只能单继承
//类  可以通过 implements 关键字来实现接口    可以实现多继承
​
//利用接口实现多继承
public class UserServiceImpl implements UserService,TimeService{//这就从侧面实现了多继承(实现了UserService,TimeService这两个接口)
   //要实现接口,就必须重写接口中的所有方法
​
   //重写了UserService接口中的add/delete/update/query4个方法
   @Override
   public void add(String name) {
​
   }
​
   @Override
   public void delete(String name) {
​
   }
​
   @Override
   public void update(String name) {
​
   }
​
   @Override
   public void query(String name) {
​
   }
​
   //重写了TimeService接口中的timer()方法
   @Override
   public void timer() {
​
   }
}

总结

  • 1、接口也是一种约束

  • 2、接口可以定义一些方法让不同的人实现

  • 3、接口中的方法都是public abstract(抽象)的

  • 4、接口中的常量都是public ststic final的

  • 5、和抽象类一样,接口也不能被直接实例化,因为接口中没有构造方法

  • 6、通过implements关键字,接口可以实现多继承,但必须要重写接口中所有的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值