微网站自己可以做么,云南省网站建设,南山做网站行业,东莞网站优化关键词公司文章目录前言一、接口#xff08;interface#xff09;的设计要点与抽象类的区别二、接口#xff08;interface#xff09;的应用实例2.1、创建一个接口#xff08;interface#xff09;2.2、创建实现接口的类2.3、通过接口回调调用被类实现的方法总结前言 面向抽象原则是…
文章目录前言一、接口interface的设计要点与抽象类的区别二、接口interface的应用实例2.1、创建一个接口interface2.2、创建实现接口的类2.3、通过接口回调调用被类实现的方法总结前言 面向抽象原则是面向对象四大基本原则的第一条其重要性不言而喻面向抽象原则分为抽象类、接口以及面向抽象编程由于篇幅有限本文我们主要细说接口interface的设计与应用并通过引入案例的形式使概念更便于理解。除去介绍接口interface的设计与应用同时对两个特别容易混淆的概念——抽象abstract类与接口interface进行对比。 一、接口interface的设计要点与抽象类的区别
接口中只可以有 public 权限的 abstract 方法不能有非 abstract 方法。注意这里接口与抽象类的区别抽象类中既可以有 abstract 方法也可以有非 abstract 方法。接口由类去实现即一个类如果实现一个接口就必须重写接口中的 abstract 方法即将 abstract 方法重新声明但必须去掉 abstract 修饰符同时要保证声明的方法名字、返回类型、参数个数和接口中的方法完全相同。这一点与抽象类的非抽象子类重写父类 abstract 方法的要求是相同的。接口回调。接口回调是指把实现接口的类的对象的引用赋给该接口声明的接口变量中这时该接口变量就可以调用被类实现的接口中的方法。接口回调原理类似于抽象类中的上转型对象调用子类方法的过程。
二、接口interface的应用实例
2.1、创建一个接口interface
首先我们创建一个接口interfaceCom里面有一个 abstract 方法 sub(int x, int y)相应代码如下
package com.bailu.principle;/** 接口中只可以有public权限的abstract方法不能有非abstract方法*/
public interface Com {public abstract int sub(int x, int y);
}2.2、创建实现接口的类
接着我们创建实现接口 Com 的类 ComImp并且重写接口中的 abstract 方法 sub(int x, int y)将其实现为计算参数 x 与 y 的差相应代码如下
package com.bailu.principle;/** 接口由类去实现一个类如果实现一个接口就必须重写接口中的abstract方法* 重新将接口中的abstract方法声明但必须去掉abstract修饰符去掉* 同时要保证声明的方法名字、返回类型、参数个数和接口中的方法完全相同* 这一点与抽象类的子类重写抽象类的abstract方法相同*/
public class ComImp implements Com {// 在重写Com接口中abstract方法的同时将其实现为计算参数x与y的差Overridepublic int sub(int x, int y) {return x - y;}
}2.3、通过接口回调调用被类实现的方法
通过上述接口回调的原理这里我们让 Com 接口声明的接口变量 com 存放 ComImp 类的对象的引用那么这时 com 就可以调用 ComImp 类中实现的接口的方法 sub(int x, int y)相应代码如下
package com.bailu.principle;/** 让Com接口声明的接口变量com存放ComImp类的对象引用* 那么com就可以调用ComImp类实现的接口中的方法*/
public class ApplicationImpl {public static void main(String[] args) {Com com;com new ComImp();// com变量存放ComImp类的对象的引用int m com.sub(6, 3);// com回调ComImp类实现的接口方法System.out.println(m);}
}运行结果如下图所示 总结 在本文给大家介绍了面向抽象原则概念中的接口的内容说明了在开发中接口interface的设计要点并在设计要点中与抽象abstract类的内容进行了对比最为明显的一点区别就是在抽象abstract类中既可以有 abstract 方法也可以有非 abstract 方法而在接口中只能有 public 权限的 abstract 方法不能有非 abstract 的方法。另外多注意在抽象类中提到的上转型对象与接口中的接口回调两个核心概念。 我是白鹿一个不懈奋斗的程序猿。望本文能对你有所裨益欢迎大家的一键三连若有其他问题、建议或者补充可以留言在文章下方感谢大家的支持