接口

接口体中包含常量的声明(没有变量)和抽象方法两部分。

常量是public, static,final型常量,方法是public,abstract方法。

 

interface Printable{  

public final static int Max = 100;  //等价写法:int Max = 100;  

public abstract void add();  //等价写法:void add() 

 

实现接口:

 

1.类实现接口:接口由类来实现以便使用接口中的方法。

 

class A implements Printable, Addable        //A类实现Printable, Addable接口。

 

2.重写接口的方法:如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。且一定要用public修饰(否则降低了方法的访问权限)

 

如果一个类声明实现了一个接口,但没有重写接口中的所有方法,那么这个类必须是抽象类,也就是说抽象类既可以重写接口的方法也可以直接拥有接口的方法

1.接口是一种引用类型,可以等同看作类。修饰符 interface 接口名
2.接口中只能出现常量和抽象方法
3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的
4.接口中没有构造方法,接口也无法实例化
5.接口和接口之间可以多继承
6.一个类可以实现多个接口,这里的实现等同于继承
7.一个非抽象的类实现接口,需要将接口中所有方法实现/重写/覆盖

 

package study1;

public interface A{
    //常量都是public static final,可省略
    public static final String sucess = "SUCCESS"; public static final double pi = 3.14; byte max_value = 127; //接口中所有的抽象方法都是public abstract, public abstract void m1(); //接口方法不能有方法体,如 void m22(){};会提示interface abstract methods cannot have body void m2(); interface B{ void m1(); } interface C{ void m2(); } interface D{ void m3(); } interface E extends B,C,D{ void m4(); } /* extends只能单继承,implements可以多继承 如果实现的接口有多个方法,必须覆盖接口中的方法。 */ class MyClass implements B,C{ public void m2(){} public void m1(){} } class MyClass2 implements E{ public void m1(){}; public void m2(){}; public void m3(){}; public void m4(){}; } } 

接口的作用

#java
package date818;

/**
 * 接口的作用:
 * 1。可以使项目分离,所有层都面向接口开发,提高开发效率
 * 2。接口是代码和代码之间的耦合度降低。变得可插拔,可以随意切换。
*  3。接口和抽象类都能完成某个功能,优先选择接口,因为接口可以多实现,多继承。并且一个类除了接口之外,还可以继承其他类
 */
public interface CustomerService { //定义一个推出系统的方法 void logout(); } package date818; //接口实现类1 public class CustomerServierImpl implements CustomerService { public void logout(){ System.out.println("成功退出系统"); } } package date818; //接口实现类2 public class CustomerServiceImpl2 implements CustomerService{ public void logout(){ System.out.println("hello world"); } } package date818; public class TestCustomer { public static void main(String[] args){ //需要执行CustomerServiceImpl和CustomerImpl2接口实现类中的logout方法 //以下程序面向接口调用 CustomerService cs = new CustomerServierImpl();//多态。父类型引用指向子类型对象 //调用 cs.logout(); CustomerService cs2 = new CustomerServiceImpl2(); cs2.logout(); } }

 

 

 

转载于:https://www.cnblogs.com/sy130908/p/11411651.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值