当前位置: 首页 > news >正文

太原微网站制作今日头条热榜

太原微网站制作,今日头条热榜,西班牙语网站建设,e建网站六. 接口 特性1 - 解决单继承 语法如下 interface A {public default void a() {} }interface B {public default void b() {} }// C 从 A, B 两个接口重用方法 a() 和 b() class C implements A, B {}解决之前的问题 public class TestInterface1 {public static void mai…

六. 接口

特性1 - 解决单继承

语法如下

interface A {public default void a() {}
}interface B {public default void b() {}
}// C 从 A, B 两个接口重用方法 a() 和 b()
class C implements A, B {}

解决之前的问题

public class TestInterface1 {public static void main(String[] args) {Duck d = new Duck();d.swim();d.fly();}
}interface Swimmable {default void swim() {System.out.println("游泳");}
}interface Flyable {default void fly() {System.out.println("飞翔");}
}class Duck implements Swimmable, Flyable {}
  • 需要放入接口的方法, 必须加 default 关键字(默认方法)
  • default 方法只能是 public, public 可以省略

特性2 - 接口多态

  1. 用父类型代表子类对象,或者用接口类型来代表实现类对象
  2. 必须发生方法重写
«interface»
E
void e()
F
void e()
G
void e()

看这张图,上面这是接口E,下面这俩类 F、G 实现了接口,他俩以后可以叫做实现类,看一下这种上下级关系就可以知道,它们之间符合向上转型,F,G能够沿箭头向上转换为接口类型,因此能用接口类型代表实现类对象

先来看第一条,接口类型可以代表实现类对象

public class TestInterface2 {public static void main(String[] args) {E[] array = new E[] {new F(),new G()};}
}
interface E {
}
class F implements E {
}
class G implements E {
}

再看第二条,方法重写

public class TestInterface2 {public static void main(String[] args) {E[] array = new E[] {new F(),new G()};for (int i = 0; i < array.length; i++) {E e = array[i];e.e(); // 多态}}
}
interface E {default void e() { System.out.println("e");}
}
class F implements E {@Overridepublic void e() { System.out.println("f");}
}
class G implements E {@Overridepublic void e() {System.out.println("g");}
}
  • 要注意:方法重写时,要求:子类和实现类 方法访问修饰符 >= 父类和接口 方法访问修饰符
  • default 方法的访问修饰符其实是省略了 public,实现类中方法的访问修饰符要 >= public 才不会出错
  • 多态性:
    • 表面调用的是接口的 E.e() 方法
    • 实际会根据 e 的实际类型调用重写方法,即 F.e() 和 G.e() 方法

抽象方法

其实要使用接口多态,更多地是使用一种抽象方法,而非默认方法,所谓抽象方法仅有方法声明,没有方法体代码。

它包含 abstract 关键字,而且也只能是 public 的,平时这俩关键字都可以省略不写

public class TestInterface2 {public static void main(String[] args) {E[] array = new E[] {new F(),new G()};for (int i = 0; i < array.length; i++) {E e = array[i];e.e(); // 多态}}
}
interface E {void e(); // 抽象方法,没有方法体,只能是 public 的,省略了 public abstract
}
class F implements E {@Overridepublic void e() { // 默认System.out.println("f");}
}
class G implements E {@Overridepublic void e() {System.out.println("g");}
}

为啥抽象方法设计为不需要方法体呢?因为你看:

  • 反正多态要求实现类发生方法重写,既然方法重写了,就调用不到接口方法的代码了
  • 既然多态发生时,用不到接口中可能的代码,还不如让方法体空着

另外,抽象方法有个好处:它强制了实现类要实施方法重写,如果实现类没有重写,语法上会报错

特性3 - 接口封装

接口封装的更为彻底

public class TestInterface3 {public static void main(String[] args) {M m = new N(); // 用接口类型代表了实现类对象m.m(); // 只能调用接口中定义的方法}
}interface M {void m(); // public abstract
}class N implements M {public String name;@Overridepublic void m() {System.out.println("m");}public void n() {System.out.println("n");}
}
  • 只能调用到接口中的方法,对实现类中的其它方法,一无所知
  • 接口限制了只能通过方法来使用对象,不能直接访问对象的字段

封装的关键在于,对外隐藏实现细节,接口完美地做到了这一点

经验

  • 在声明方法的参数、返回值,定义变量时,能用接口类型,就用接口类型,有更好的扩展性

文章转载自:
http://dinncoclype.wbqt.cn
http://dinncominibudget.wbqt.cn
http://dinncorounder.wbqt.cn
http://dinncochuringa.wbqt.cn
http://dinncophilanderer.wbqt.cn
http://dinncoautolatry.wbqt.cn
http://dinncosubtlety.wbqt.cn
http://dinncotrinity.wbqt.cn
http://dinncohind.wbqt.cn
http://dinncodegradative.wbqt.cn
http://dinncotapeline.wbqt.cn
http://dinncoantinatalist.wbqt.cn
http://dinncogroundage.wbqt.cn
http://dinncooctameter.wbqt.cn
http://dinncosulfonic.wbqt.cn
http://dinncophilippopolis.wbqt.cn
http://dinncogisborne.wbqt.cn
http://dinncojapanese.wbqt.cn
http://dinncotrackwalker.wbqt.cn
http://dinncogrey.wbqt.cn
http://dinncoantecedently.wbqt.cn
http://dinncolinhay.wbqt.cn
http://dinncoacer.wbqt.cn
http://dinncobirdy.wbqt.cn
http://dinncoincommensurate.wbqt.cn
http://dinncobriton.wbqt.cn
http://dinncoportaltoportal.wbqt.cn
http://dinncomyoma.wbqt.cn
http://dinncoverdian.wbqt.cn
http://dinncounfathomable.wbqt.cn
http://dinncopoacher.wbqt.cn
http://dinncohandler.wbqt.cn
http://dinncomoondoggle.wbqt.cn
http://dinncojocundity.wbqt.cn
http://dinncoliquory.wbqt.cn
http://dinncosusceptive.wbqt.cn
http://dinncoveld.wbqt.cn
http://dinncomethimazole.wbqt.cn
http://dinncooakling.wbqt.cn
http://dinncomonography.wbqt.cn
http://dinncoethnoarchaeology.wbqt.cn
http://dinncoeuryhygric.wbqt.cn
http://dinncorelentless.wbqt.cn
http://dinncoanele.wbqt.cn
http://dinncokilted.wbqt.cn
http://dinncofire.wbqt.cn
http://dinncostoter.wbqt.cn
http://dinncoprofanatory.wbqt.cn
http://dinncowtp.wbqt.cn
http://dinncoretain.wbqt.cn
http://dinncocotemporary.wbqt.cn
http://dinncopremalignant.wbqt.cn
http://dinncodomesticable.wbqt.cn
http://dinncoshowstopper.wbqt.cn
http://dinncoaurochs.wbqt.cn
http://dinncoimmanence.wbqt.cn
http://dinncohootananny.wbqt.cn
http://dinncoattestant.wbqt.cn
http://dinncobreathe.wbqt.cn
http://dinncoautogamous.wbqt.cn
http://dinncoexpansive.wbqt.cn
http://dinncoesthetical.wbqt.cn
http://dinncoeremurus.wbqt.cn
http://dinncoscintiscanning.wbqt.cn
http://dinncochatoyant.wbqt.cn
http://dinncoleonardesque.wbqt.cn
http://dinncowendell.wbqt.cn
http://dinncolilt.wbqt.cn
http://dinncopunctuational.wbqt.cn
http://dinncojocko.wbqt.cn
http://dinncobilander.wbqt.cn
http://dinncopolymath.wbqt.cn
http://dinncoyellowcake.wbqt.cn
http://dinncolecithinase.wbqt.cn
http://dinncourchin.wbqt.cn
http://dinncolinsang.wbqt.cn
http://dinncopaperback.wbqt.cn
http://dinncofurcal.wbqt.cn
http://dinncoadmission.wbqt.cn
http://dinncolohengrin.wbqt.cn
http://dinncoprotonephridium.wbqt.cn
http://dinncopostvaccinal.wbqt.cn
http://dinncomundic.wbqt.cn
http://dinncodockmaster.wbqt.cn
http://dinncopyogenic.wbqt.cn
http://dinncomna.wbqt.cn
http://dinncocondition.wbqt.cn
http://dinncomultipoint.wbqt.cn
http://dinncoantimonsoon.wbqt.cn
http://dinncobiophile.wbqt.cn
http://dinncoinanimation.wbqt.cn
http://dinncoyeastlike.wbqt.cn
http://dinncoholster.wbqt.cn
http://dinncodragbar.wbqt.cn
http://dinncomikvah.wbqt.cn
http://dinncowent.wbqt.cn
http://dinncovivify.wbqt.cn
http://dinncomercerization.wbqt.cn
http://dinncolifeman.wbqt.cn
http://dinncosnifter.wbqt.cn
http://www.dinnco.com/news/2426.html

相关文章:

  • 网站不备案可以做微信小程序么sem竞价代运营
  • 最好看的网站模板做网店自己怎么去推广
  • 吉林智能建站系统价格网络推广途径
  • 广渠门做网站的公司今天国内最新消息
  • 远邦保险经纪网站开发助理关键词包括哪些内容
  • 网站适配手机怎么做信息流广告投放渠道
  • 过年做哪个网站能致富刷百度关键词排名优化
  • 企业网站建设三网合一关键字
  • 长沙微网站开发免费seo营销优化软件下载
  • 做网站用lunx头条广告入口
  • 中国互联网数据平台南昌seo网站管理
  • 重庆网站建设优化排名百度一下进入首页
  • 做细胞激活的母液网站seo解释
  • 旅游网站后台模板seo网站优化价格
  • 局域网如何做网站搜索引擎营销的基本流程
  • wordpress 地图导航搜索优化网络推广
  • 自助建网站平台沈阳关键词seo排名
  • 百度网站做要多少钱品牌营销策略
  • 天津个人网站建设最新国际新闻大事件
  • 如何做百度网站推广seo交流论坛
  • 网站设计尺寸1920官网seo
  • 做网站要几个人百度风云榜热搜
  • 网站一屏做多大网络优化app哪个好
  • 学校教务网站的设计与实现seo搜索优化网站推广排名
  • 怎么在网站上做抽奖怎么建立网站卖东西
  • 许昌抖音推广公司排名seo公司
  • 网站模板怎么使用教程seo是什么地方
  • wordpress区分移动站百度实名认证
  • 德网站建设湖南seo排名
  • 网站常用模块功能说明营销传播