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

学校网站群建设思路中国做乱的小说网站

学校网站群建设思路,中国做乱的小说网站,网站怎么看是什么程序做的,邯郸做小程序的网络公司密封类的作用 在面向对象语言中#xff0c;我们可以通过继承#xff08;extend#xff09;来实现类的能力复用、扩展与增强。但有的时候#xff0c;有些能力我们不希望被继承了去做一些不可预知的扩展。所以#xff0c;我们需要对继承关系有一些限制的控制手段。而密封类…密封类的作用 在面向对象语言中我们可以通过继承extend来实现类的能力复用、扩展与增强。但有的时候有些能力我们不希望被继承了去做一些不可预知的扩展。所以我们需要对继承关系有一些限制的控制手段。而密封类的作用就是限制类的继承。 已有的限制手段 对于继承能力的控制Java很早就已经有一些了主要是这两种方式。 1final修饰类这样类就无法被继承了。 2package-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://www.hkea.cn/news/14424182/

相关文章:

  • 网站开发前台 后台技术免费logo设计一键生成下载
  • 长春网站建设哪个公司好动漫wordpress主题下载
  • 哪个网站是用vue做的网页代码教程
  • 网站静态页面昆明君创网络科技有限公司
  • 建筑案例网站广东注册公司在哪个网站申请
  • 制作网站需要哪些工具虚拟主机怎么使用
  • 淘宝电商平台网站扬州市广陵区建设局网站
  • 太原做网站联系方式郑州网站制作郑州网站制作
  • 网页制作与网站建设完全学习手册下载怀柔区企业网站设计机构提供
  • 遵义仁怀网站建设下载天眼查企业查询官网
  • 莆田建设信息网站基于多站点的网站内容管理平台的管理与应用
  • 网站cms是什么意思如何看待响应式网页设计
  • 移动网站制作价格wordpress首页设置错误
  • 福州仓前网站建设个人做的网站
  • 周年庆网站要怎么做淘宝客网站怎么做优化
  • 胶州网站建设培训163企业邮箱服务器怎么设置
  • 网站转化率大学网站方案设计
  • 企业网站推广的方法有搜索引擎推广网站建设销售该学的
  • dede仿手机网站模板做旅游攻略的网站
  • 石家庄搭建网站专注软件优化分享的网站
  • 2019年10月电子商务网站设计遵义专业网站建设公司电话
  • 青岛市黄岛区建设局网站泉州大型网站建设
  • 平潭综合实验区交通与建设网站苏州互联网公司工资
  • 合肥专业网站制作网站建设及维护价钱
  • 南阳网站运营摄影设计思路
  • 外贸网站建设开发南京做网站哪家公司最好
  • 建个网站费用生产型或服务型企业网站有哪些
  • 东盟建设工程有限公司网站wordpress启动慢
  • 网站建设和实现外贸服装网站建设
  • 深圳罗湖建网站WordPress搭建连不上数据库