Java基础之浅谈接口
前言前几篇文章我们已经把Java的封装、继承、多态学习完了,现在我们开始比较便于我们实际操作的学习,虽然它也是Java基础部分,但是其实入门容易,精通很难。 我认真的给大家整理了一下这些必须学会、了解的知识点。
-下面我们正式进入正题吧<( ︶ ) [GO!] 一、接口1.接口的概念接口:接口并不是类,而是帮助类去实现功能的一种技术。 如果你的类符合某个特定的接口,我就会履行这项服务。 定义接口我们可以使用 interface 关键字 将类声明为实现某个接口可以用 implements 2.什么是实例字段先说字段,什么是字段? 字段是属于类的,它是会用public、private等关键字修饰的。而变量就是我们通常定义的int a这样的,它没有访问控制符; 所以实例字段就是我们构造器中的,也就可以理解为没用构造方法。 3.接口的特点接口中的所有方法都自动是public的,因此在接口中我们可以省略public关键字 Java中接口不会有实例字段,可以将接口看成没用实例字段的抽象类。 接口中的字段总是public static final的 Java中虽然不能够多继承,但是可以用一个类实现多个接口,从而达到了多继承的效果。(这也是接口和抽象类的概念,虽然接口中在JDK8之前是抽象的,但是抽象类只能被继承一个,而接口可以被实现多个) 在接口中现在实现了定义方法内容,但是需要用到default、和static关键字才可以。 在我们类重写接口方法时,我们不可以省略public关键字 二、接口的实际使用根据上面接口的特点,现在我们来演示一下,接口到底是怎么使用的。 public interface InterfaceTest { int a = 0; public static final int b = 0;//public static final可以省略不写 void sum1(); public abstract void sum2();// public abstract可以省略不写 static void test1() { System.out.println("static可以实现在接口中定义方法内容,此方法不推荐具体用法可自行学习,这也是Java8的新特性"); } default void test2() { System.out.println("default可以实现在接口中定义方法内容,并且此方法没必要去类中实现"); } } class Test1 implements InterfaceTest{ @Override public void sum1() { System.out.println("此方法必须在类中去实现"); } @Override public void sum2() { System.out.println("此方法必须在类中去实现"); } } 接口的属性: 接口不是类,所以不可以使用new运算符实例化一个接口。x = new Comparable(); 但是我们可以使用接口去声明一个变量 Comparable x; 我们可以使用接口变量去引用实现了这个接口的类 public static void main(String[] args) { InterfaceTest inter = new Test1();//跟多态差不多 if(inter instanceof InterfaceTest) {//同样可以使用instanceof判断,这个肯定为true了 inter.sum1(); inter.sum2(); inter.test2(); } } 实现多接口的写法: public class Employee extends Person implements Comparable,Collection,... 三、解决默认方法冲突产生原因:一个类继承了另一个类的同时,又实现了一个接口,当此接口于父类都拥有相同的方法时,他就会产生冲突,那么会哪个优先呢?我们来看一下吧 class Father { public void sum1() { System.out.println("我是父亲的sum1"); } public void test2() { System.out.println("我是父亲的test2"); } } class Son extends Father implements InterfaceTest{ @Override public void sum1() {//在我们重写方法是不可以省略public System.out.println("此方法必须在类中去实现,我是儿子sum1"); } @Override public void sum2() { System.out.println("此方法必须在类中去实现"); } public static void main(String[] args) { InterfaceTest inter = new Son(); if(inter instanceof InterfaceTest) { inter.sum1();//经过测试发现,和多态性一样,优先调用子类 inter.sum2(); inter.test2();//经过测试发现,这个default的情况是,父类优先 } } } 最终就是记住"类优先"原则。 四、接口回调如果说父类实现了某个接口,那么子类继承父类时候,自然实现了该接口,没用必要再实现了。 在我刚接触这个" 接口回调 "一次时,我觉得非常的高大上。 其实就是简单的多态应用 假设Com是一个接口,ImpleCom()是该接口的实现类,则 Com c = new ImpleCom(); 在调用方法是仍然和多态一样。可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量----> Com c = new ImpleCom(); ,那么该接口变量 c 就可以调用被类实现的接口方法以及接口提供的default方法或者类重写的default方法。
其实真没啥可说的,就是这个 c 既可以调用从接口那里实现过来的方法,也可以调用自身的方法。
本文来自https://www.cnblogs.com/lx-meteor/p/16100914.html
小米小爱同学新技能下班打卡只需要说一声小爱同学官方微博表示,小米手机的小爱同学新上线了工作打卡功能,可实现上班下班打卡,操作办公App。据介绍,用户只需要对手机上的小爱同学说企业微信打卡,或者钉钉打卡,就可实现上下班打
科技丨理想同学上新?理想ONE车机2。2版本使用指南来了文懂车帝原创潘梓春懂车帝原创产品理想社区有史以来收藏数最多的帖子是什么?是理想同学使用指南。2021款理想ONE日前,理想官方发布了最新2。2版本的车机系统,在理想同学的自由对话能
高频耳鸣戴上助听器后耳鸣会不会有改善呢?助听器是电子产品,对耳鸣没有治疗作用,但是助听器可以是掩盖耳鸣声,起到缓解作用。助听器选配得好,患者耳鸣的主频率又在助听器的放大频率范围内,耳鸣的响度又不是很重,有70的耳鸣是有可
听力不好戴助听器有什么好处?打个比方眼睛不好戴眼镜有什么好处?听力不好的老人戴上助听器首先能提高听力,能够更好地与家人朋友交流沟通,提高生活质量。从生理角度上来说,戴上助听器可以延缓听力下降,降低老年痴呆的风
助听器常见的问题有哪些?由于很多老年人缺乏听力康复意识,总认为人老了听力下降是天经地义的,放弃了有效的治疗和干预。其实80以上的老年听力障碍者是适合验配助听器的。选择合适的助听设备及时进行听力障碍康复是成
助听器不测听力直接买可以吗?建议到专业的验配中心配助听器会更好一些,搞清楚自己听力下降的原因,耳道的状况。现在的助听器都非常精细化,根据自己的生活环境,可以设置不同的听力数据和参数,自己调的只是简单的声音大小
想买一台助听器给老人,老人耳朵不是很好,应该怎么配?现在有好多儿女,对父母奉献一片孝心,为父母买助听器的很多,但有很多儿女,选择在网上购买方法,很不适当存在问题很多,因为没有人为你购买的助听器,做耳朵及听力全方位检测,杂音燥声很大,
我奶常山赵子龙获腾讯回应人脸确实是本人此前,网络上曝光了防沉迷禁令后,一位身份认证为60岁奶奶的玩家在凌晨三点用赵云拿了五杀的照片,被网友津津乐道。对此,腾讯也在第一时间找到了该账号,并进行了相关传闻的验证。腾讯方面表
一套防沉迷系统引发的血案8月30日晚,国家新闻出版署下发通知,要求所有网络游戏企业仅可在周五周六周日和法定节假日每日20时至21时向未成年人提供1小时服务。这意味着,正常情况下,未成年玩家每周游戏时长最多
毫米波5G拓展无线宽带网络业务应用和部署模式的新工具通信世界网消息(CWW)日前,高通和中兴通讯联合宣布,为配合和支持IMT2020(5G)推进组制定的支持200MHz载波带宽的5G毫米波测试和部署需求,双方成功展示了基于26GHz
开启未来看慕尼黑车展上的前沿技术慕尼黑车展其实就是我们熟知的法兰克福车展,由于疫情的原因,所以今年在慕尼黑举办,今年自然也就更名为了慕尼黑车展,而这也是全球疫情时代下,世界五大车展之中第一个恢复举办的,疫情归疫情