想要成为VIP等级玩家吗 先来学学继承

java零基础入门-面向对象篇(八)  继承 与 封装

每次看到继承就勾起了我当年学习这块知识的时候,那痛苦不堪的回忆。

当年学继承的时候 到处都是 A啊B啊继承啊,不仅看的头皮发麻,还容易被绕晕,你们写教材的大佬举个轻松愉快的例子会怀孕吗?啊啊啊???

再就是,动不动就是儿子老子,孙子爷爷,你继承你爹的,你爹继承你爷爷,你家关系是有多复杂,搞来搞去好像就你活着就是为了你爹那点私房钱,真是不忍直视。

为了好好解释继承这个东西,我专门研究了一下某大厂的VIP系统(小编如此用心良苦,你们忍心不点赞么),此系统可是鼎鼎大名的,我们从系统功能设计的角度来看看继承。

什么是继承 ?为什么要继承 ?

java里面继承关系的关键字是extends,而这个单词却跟继承八竿子打不着关系,其实我们通常说的继承应该描述为 扩展 才更加准确。

关键字

在我们为一个系统写功能的时候,会遇到这种情况,新建了一个类,用着用着发现又要新建一个类,而这个类只与前面那个类有些许不同,大部分是相同的,而我们不得不去将属性啊,方法啊重新再写一遍。我们前面说了,写代码千万不要复制粘贴,我们学习的方法是在类的内部,将逻辑重用的一种方法,而继承,则是将类重用的一种方法。

比如下面我们要说的VIP系统,VIP有3个等级,VIP1,VIP2,VIP3,普通玩家是player,VIPLevelOne 是VIP1级用户,他们有相同的基础属性和方法,但是如果我们不使用继承,会是这样。

重复的代码


作为一个程序员,我们必须有基本的修养,眼里不能容下任何一粒沙子,相同的代码就是沙子。如果使用继承,我们完全可以重用代码,VIP用户也是用户,他可以通过继承获得用户player的全部属性和方法。


继承直接获取属性和方法


除了代码的重用,继承更常用的一个用法就是扩展类。为什么要扩展?我们看下下面这个场景。

有时候,你加入一家心仪已久的公司,上头交代一个任务,准备就绪,开始撸代码,突然发现,你需要使用一个方法,然后这个方法的最上面有一行注释,写着 “作者 XXX 20XX年 创建”, XXX就是你的老板,这时候咋办,你去改你老板写的代码?先不说能不能改,这个系统已经跑了很久了,你把它改了,万一出了问题,那不是开除走人就能解决的了,万一造成大面积的系统崩溃,可是要赔钱的,你真的想删库跑路么?。。。

就算能改,你是瞧不起你老板么?他老人家的代码你也要改?你以为你是谁?

改嘛~不敢~  不改嘛~任务完成不了怎么交差啊,这时候,继承的特性就派上用场了。

我们完全可以不去改这个类,而是用另一个类来继承他,当我们继承一个类的时候,除了获得这个类的全部属性,方法和构造器的使用权,还可以自己写同名属性,同名方法,这样我们就可以在不改变原来老板写的代码的情况下,来 “修改” 这个类了。关于这个特性我们后面章节详细说。

vip 系统介绍

写代码之前,先要弄清楚 需求 ,需求设计可是需要在写代码之前完成的。

玩过游戏的同学都知道,有个大厂的游戏,充钱越多,越牛X。如何牛X?


确认下眼神

确认过眼神~~是充过钱的人~~我把你举报~而却封我的号~~  

这就是VIP的气势,自带气场光环,不服不行啊。

我们看看你要充多少钱才能成为VIP。


VIP充值金额


每个等级的VIP可以获得的服务是不同的,等级越高获得的服务越牛,简直就是给你开了官方版外挂。外挂太多,我们挑几个看看。


VIP专属权限

我们看了系统需求,来看看我们如何把他抽象成类,如何设计这个VIP体系。

vip的继承设计

首先最基础的是玩家,就是Player类,然后我们的VIP1直接继承Player,VIP2拥有全部的VIP1特权,并且有自己新的特权,VIP2继承VIP1。同理,VIP3继承VIP2。这样,我们就可以使用继承特性完成三个类的创建。


VIP的继承关系

从这个继承关系看到,java里的继承只能有一个直接的父类,这就是所谓的单继承。只能有一个直接的父类,就是说可以有多个间接的父类,父类的父类就是间接的父类。直接父类只能有一个,而间接父类可以有多个。

封装

这里有必要先讲一下封装的概念,我们后面介绍继承的时候,要使用到封装的知识。

在很久以前我介绍java语言特性的时候就稍微说明了一下封装的概念,比如我们很多网站或者app里面填写信息的时候,是不会给你直接填年龄的,而是通过你的出生日期计算出你的年龄,这就是封装。程序为了避免一些常识上的错误会将部分的功能对用户 “屏蔽”,用户是不能直接操作的。

再比如,我们在做项目的时候,肯定不是一个在战斗,而是一个团队协作的过程,在协作的过程中,你会发现各种各样的奇葩队友。一个大家都要使用的方法,专门安排一位 “武林高手” 去写,结果这位高手写的东西真的是惨不忍睹,如果用他写的公共方法肯定是BUG满天飞,到时候还得被批评自己的代码出问题。

怎么办?直接说啊,XXX你这写的什么乱七八糟的破玩意!别激动,这位高手的姐姐的姑妈的朋友的亲戚是你领导,人家是有关系的,你不给点面子?没办法,自己写吧,但是你写的要是被别人发现了,别人也要用你的代码了,这时候,封装就派上用场了,直接在方法前面加一个private,好了,只能在自己类里面用,这个世界从此安静了。

我们设计一个类的时候,有时候跟设计一个软件产品有一些相同的思想。我们对用户屏蔽不需要知道的细节,只留部分我允许的功能暴露出去。好吧说人话,用户虽然是上帝,但是有些上帝喜欢搞破坏,我只能开放一些指定的功能让用户去用,并且保证无论用户怎么操作都不会对系统产生破坏。


按一下就能起飞


再举个栗子,我们开车的时候,是不是只用按一下启动,车就开了?你需要把引擎盖打开,对着发动机一顿操作让他启动吗?发动机就是对用户隐藏了,而那个按一下就启动车子的按钮,就是对用户暴露的功能,我无论怎么按,车的发动机都不会被破坏。这个发动机就是一个私有方法,外部不可见。

访问修饰符有3个,private (私有),protected(受保护),public(公开),还有一种就是你不写,他会有个默认的权限 default。一般来说private 和 public使用最为频繁,而protected是专门用来给子类重写的。下面来看看这几个修饰符。


访问限制


关于继承的一些复杂的,绕口的规定我们下一章继续说。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,152评论 25 707
  • 下课了,我抱起课本走回办公室,在路过六班时看到梓丹匆匆走过,我还准备好了微笑准备展示给他,谁知道他看也不看我一眼就...
    秋笏笑月阅读 336评论 0 2
  • 当你放弃的足够多之后 你会知道坚持的力量
    小_F阅读 341评论 0 0
  • 总体感受: 1、课程组织:课程设计合理,张弛有度,组织费心费力2、老师授课:讲课风趣幽默、深入浅出、用语与时俱进、...
    彭玄霏阅读 1,203评论 0 7