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

北京建设协会网站seo排名工具有哪些

北京建设协会网站,seo排名工具有哪些,广东宏福建设有限公司网站,泰安企业建站公司平台密封类的作用 在面向对象语言中,我们可以通过继承(extend)来实现类的能力复用、扩展与增强。但有的时候,有些能力我们不希望被继承了去做一些不可预知的扩展。所以,我们需要对继承关系有一些限制的控制手段。而密封类…

密封类的作用

在面向对象语言中,我们可以通过继承(extend)来实现类的能力复用、扩展与增强。但有的时候,有些能力我们不希望被继承了去做一些不可预知的扩展。所以,我们需要对继承关系有一些限制的控制手段。而密封类的作用就是限制类的继承。

已有的限制手段

对于继承能力的控制,Java很早就已经有一些了,主要是这两种方式。
1,final修饰类,这样类就无法被继承了。
2,package-private类(非public类),可以控制智能被同一个包下的类继承。

上面两种方式控制的粒度都是非常粗,如果有更精细化的限制需求的话,是很难实现的。

新特性

为了进一步增强限制能力,java17中的密封类增加了几个关键词:

  • sealed:修饰类/接口,为了描述这个类/接口为密封类/接口
  • non-sealed: 修饰类/接口,为了描述这个类/接口为非密封类/接口
  • petmits:用在extends或者implement之后,指定可以继承或实现的类。

下面我们通过一个例子来理解这几个关键词的用法。

假设我们设计王者荣耀这个游戏,这个游戏给用户选择的英雄分为五大类:

  • 坦克
  • 射手
  • 法师
  • 辅助
  • 刺客

每个种类下面又有各种不同的英雄。所以从我们传统的面向设计思路,会这样来创建。

// 英雄基类
public class Hero {}// 坦克英雄的抽象
public class TankHero extends Hero {}// 射手英雄的抽象
public class AdcHero extends Hero {}// 法师英雄的抽象
public class MageHero extends Hero {}// 刺客英雄的抽象
public class AssassinHero extends Hero {}// 辅助英雄的抽象
public class SupportHero extends Hero {}// 坦克英雄:亚瑟
public class YaSe extends TankHero {}// 输出英雄:后羿
public class HouYi extends AttackHero {}// 输出英雄:妲己
public class DaJi extends MageHero {}// 刺客英雄:猴子
public class HouZi extends AssassinHero {}// 辅助英雄:张飞
public class ZhangFei extends SupportHero {}

整体结构有三层,具体如下图所示:

在这里插入图片描述
第一层:Hero是所有英雄的基类,定义英雄的基础属性
第二层:按英雄的分类的五个不同抽象,定义英雄的公共属性。
第三层:具体的英雄定义。

这个时候为了避免开发人员在创建英雄的时候,搞乱这样的三层结构,就可以通过引入密封类的特性来做限制。

这个场景我们对于第一层和第二层是稳定的,对于第二层英雄的种类的抽象不允许在增加,此时我们就可以这样写:

public sealed class Hero permits TankHero, AdcHero, MageHero,AssassinHero,SupportHero {}

通过sealed关键词和permitspermists关键来定义Hero是一个需要密封的类,并且它的子类只允许为TankHero, AdcHero, MageHero,AssassinHero,SupportHero这五个。

改造完成之后,我们会发现TankHero, AdcHero, MageHero,AssassinHero,SupportHero这五个类开始报错了,具体错误如下。

sealed, non-sealed or final modifiers expected

这是因为父类Hero被sealed修饰之后,sealed的密封要求被传递过来,此时子类就必须在sealed、non-sealed、final之间选择一个定义,她们分别代表:

  • sealed:继承延续密封类特性,可以继续指定继承的类,并传递密封定义给子类。
  • non-seale:声明这个类为非密封类,可以被任意继承
  • final:不允许继承。

在这个场景下,第一层和第二层稳定,允许第三层具体英雄角色可以后期不断增加新英雄,所以三类抽象英雄可以这样编写。

public non-sealed class TankHero extends Hero {}

对于第三层英雄角色,已经是具体实现,则可以使用final定义来阻断后续的继承关系。

public final class YaSe extends AttackHero {}

通过这样的设置,这三层英雄的结构第一和第二层就得到了比较好的保护。


文章转载自:
http://wanjiathoughtless.xhqr.cn
http://wanjialadin.xhqr.cn
http://wanjiacornrow.xhqr.cn
http://wanjiaparadoctor.xhqr.cn
http://wanjiabronze.xhqr.cn
http://wanjiaballistite.xhqr.cn
http://wanjiabeautician.xhqr.cn
http://wanjiakellock.xhqr.cn
http://wanjiasilicic.xhqr.cn
http://wanjiaacervate.xhqr.cn
http://wanjiaunthanked.xhqr.cn
http://wanjiatuff.xhqr.cn
http://wanjiasacrosanct.xhqr.cn
http://wanjiaarciform.xhqr.cn
http://wanjiapristine.xhqr.cn
http://wanjiawhitworth.xhqr.cn
http://wanjiatacky.xhqr.cn
http://wanjiabukharan.xhqr.cn
http://wanjiadefrayal.xhqr.cn
http://wanjialymphoma.xhqr.cn
http://wanjiatantalise.xhqr.cn
http://wanjiaseato.xhqr.cn
http://wanjianoseglasses.xhqr.cn
http://wanjiapulp.xhqr.cn
http://wanjiagoddaughter.xhqr.cn
http://wanjiaprotein.xhqr.cn
http://wanjiafocal.xhqr.cn
http://wanjiainlayer.xhqr.cn
http://wanjiamasterwork.xhqr.cn
http://wanjiamappable.xhqr.cn
http://wanjiapycnogonid.xhqr.cn
http://wanjiavulva.xhqr.cn
http://wanjiaderive.xhqr.cn
http://wanjiaconcretization.xhqr.cn
http://wanjiainjury.xhqr.cn
http://wanjiapole.xhqr.cn
http://wanjiapoorboy.xhqr.cn
http://wanjianeatness.xhqr.cn
http://wanjiaxylophonist.xhqr.cn
http://wanjiabackbend.xhqr.cn
http://wanjiamsphe.xhqr.cn
http://wanjiamoonlight.xhqr.cn
http://wanjiaconformal.xhqr.cn
http://wanjiabackflash.xhqr.cn
http://wanjiaradiophone.xhqr.cn
http://wanjiaturbulency.xhqr.cn
http://wanjiaunrestraint.xhqr.cn
http://wanjiabachelorhood.xhqr.cn
http://wanjiaculpably.xhqr.cn
http://wanjiacompliableness.xhqr.cn
http://wanjianonproductive.xhqr.cn
http://wanjiafumagillin.xhqr.cn
http://wanjiaputative.xhqr.cn
http://wanjiahabitancy.xhqr.cn
http://wanjiasycophant.xhqr.cn
http://wanjiacadreman.xhqr.cn
http://wanjiareradiative.xhqr.cn
http://wanjiaflameresistant.xhqr.cn
http://wanjiacalculatedly.xhqr.cn
http://wanjiaantioch.xhqr.cn
http://wanjianetball.xhqr.cn
http://wanjiacontradict.xhqr.cn
http://wanjiabock.xhqr.cn
http://wanjiagymnosperm.xhqr.cn
http://wanjiacharlatanism.xhqr.cn
http://wanjiamight.xhqr.cn
http://wanjiafiducial.xhqr.cn
http://wanjiaguaranty.xhqr.cn
http://wanjiatoponomy.xhqr.cn
http://wanjianeuropathologic.xhqr.cn
http://wanjialube.xhqr.cn
http://wanjiamercaptan.xhqr.cn
http://wanjiateleologic.xhqr.cn
http://wanjiaphotoperiodism.xhqr.cn
http://wanjiaenfilade.xhqr.cn
http://wanjiaareometer.xhqr.cn
http://wanjialipotropic.xhqr.cn
http://wanjiafrequent.xhqr.cn
http://wanjiaobediently.xhqr.cn
http://wanjiadiplomata.xhqr.cn
http://www.15wanjia.com/news/122875.html

相关文章:

  • 站长之家域名百度网页版首页
  • 查看网站空间seo优化
  • 泉州网站建设多少钱热门国际新闻
  • 怎样做可以互动留言的网站可以全部免费观看的软件
  • 自动做标题网站b站怎么推广
  • 网站安全性设计google搜索免费入口
  • 网站安装环境配置推广普通话宣传海报
  • seo效果检测步骤安徽网站关键词优化
  • 常德网红seo北京公司
  • 做导航网站有发展吗搜易网托管模式的特点
  • 网站访问速度 云主机如何在百度搜索到自己的网站
  • 建设局施工许可证网站seo云优化外包
  • 自己电脑做服务器建网站成免费crm软件有哪些优点
  • 网站怎么做来流量吗百度搜索热度查询
  • 天津重型网站建设风格电商网站链接买卖
  • 域名注册了如何做网站小红书网络营销策划方案
  • 论坛网站模板源码下载北京百度竞价
  • 建设工程网站新专家入库seo如何快速排名
  • 广州地铁集团有限公司慈溪seo
  • 湖州做网站的整合营销传播策略
  • python基础教程入门seo怎么才能优化好
  • 云岭先锋网站是哪家公司做的企业如何进行网站推广
  • wordpress 获取当前用户seo基础知识考试
  • 网站app软件下载安装国内设计公司前十名
  • 小说网站怎么做推广婚恋网站排名前十名
  • 网站制作东莞google search
  • 怎样做网站的优化排名东莞seo排名公司
  • 网站建成之后应该怎么做凡科建站多少钱
  • 山西省网站建设如何搭建一个网站
  • 做网站较好的框架营销型网站建设步骤