00:00
那么继承性的话呢,咱们就已经讲完了,讲完以后的话呢,我们通过接下来的一些代码和练习呢,去强化咱们这个继承性,那首先呢,我们看下这个课后题,课后题的第一个呢,说定义了一个person类,定义了一个student类,这个student类呢,让他去继承我们的person,这个类图当中,这是一个类图,这个类图类图当中呢,咱们用这个实线的这个箭头表示的是叫继承的关系,然后呢,此类呢指向这个父类,所以这个箭头呢是这样值,大家知道这个关系就可以了,那我们在这个父类当中,你去定义相应的这个属性和方法,然后子类这块集成以后就不用再去额外定义了,那你可以再定义自己特有的属性,包括特有的一些方法,这个题目的话呢,作为一个基本的题,这个大家下来呢,可以写一写,这呢我就不讲了,这个比较基本的一个题,然后呢,我们再来看一下后边这个题,这个题呢,咱们写一写。说定一个叫mankind类,包括呢这样的属性方法,然后再定一个叫case,继承我们这个mankind具有的新的属性和方法,然后在这个测试类当中去实例化我们这个子类对象,调一下这个父类里边生命的这些方法来,从而呢体现咱们的叫继承性,这咱们就来写一写行首先呢定义这个man,看CTRLC咱们新建。
01:23
对,12。新建一个包练习新建一个类慢。看的看的K大写了。行这块呢,我们就按照它这个要求呢来写就可以了,定义呢,这个成变量int型的sex int型的salary,这个呢,我们写这个练习呢,就体现一下这个前面讲过的这个封装性,也所以定义成一个private int型的一个sex,嗯,这个int型的一个salary。
02:12
行,这个sex呢,表示叫性别。这个呢,叫他的一个薪资这样好,那下边呢,又提到了两个方法,那我们先把人家要求的这个先写完,再补充一些其他的方法的话呢,我们通常呢,目前都先写成public的VO man or woman,这个呢,直接在里边判断说根据这个sex性别来显示男或女,性别显示男或女,这我们写个if吧,如果这个sa呢,是一。这个我们直接在里边输出,这个叫慢else if sex等等于零,输出一下叫woman行,其他的情况呢,没有说,那我们就不写了,所以呢,If else这个多选一的结构也可以没有else这个咱们讲过,再接着public avoid employed,就是不是被雇佣了,这样意思说,如果呢,这个salary等于零,就是没有工作,不等于零呢,就是有工作。
03:25
那我们就直接呢来写,还是写这个衣服说如果salary等于零,这个呢,我们就输出一下no job else,诶输出一下这个叫job,这个呢,你也可以用个三元来写也行。用30写也可以,那就是这么着写了。这个salary你可以这写呢,就是是不是等等于零,如果要是是这给大家返回一个字符串叫no job,否则冒号job一下给他呢,用一个这个变量来接收这个我们是job的一个信息,这样然后你再输出一下我们的这个job info。
04:10
这样也可以啊,对吧。这样也可以行,那这样呢,我们就写完了,写完以后呢,接着来看他这个子类的定义,子类呢这个叫key就是小孩,然后让他呢,来继承咱们的maca具有这个新的属性和方法。转过来看一下,这呢说定义了,这个叫case,我们写成一个private,然后呢叫int型的years old,接着呢,再增加的这个方法叫public world print age,好在这里边的话呢,打印它这个叫years old,就是它到底多大了,我们这输出一下。
05:05
说这个IM,然后多大了,加上一个叫old,空格一下,然后叫ears。Old说我今年多大了,这个意思好,这呢是我们按照这个题面的要求呢,做了这样的属性跟方法的一个设置,那我们在做测试的时候呢,如果想去修改这些属性,目前呢,没有别的办法,因为你都给private化了,所以我们在这个题面的基础之上呢,还可以呢,去给我们这个类呢,提供相应的这个构造器和盖塞的方法,咱们这里边儿呢,我就直接来调一下了,首先呢,关于这两个属性呢,盖塞的方法。加上,然后呢,我们再去声明构造器,构造器写后边也行,习惯上呢,我们都通常呢爱把它写到这儿了,就属性跟方法之间这里边儿呢,先去添加,一般呢咱们都会添加一个空参的。
06:01
加一个这个呢,咱们没有见过,今天呢,咱们就能讲这个叫super关键字,然后再加一个。这个全餐的这呢,我们把这个super呢也暂时也删掉,先这样,然后咱们再来看这个子类,子类呢,这里边提供了一个私有的属性,那我们也让他能够访问,在这个类外面也是加一个概算方法。这样行,再呢去提供这个构造器,嗯,构造器,构造器的话呢,咱们就提供一个叫eo的这样构造器这个呢,也先给大家干掉好,这样就可以了。保存一下行,这呢就作为这个基本的类出现了,其实这个类的话呢,大家看它满不满足我们说的这个渣宾的要求啊。张斌想想,第一条类是一个公共的对吧,第二条提供一个无啊,没有午餐的是吧,那这不满足呢,还这呢,我们还得去加一个,加一个不要参数的这个才行,得有一个空餐的过道器,而且这个过道器他也要求这个权限呢,也得是一个公共的,也得是个公共的,这是第二条,第三条是什么呀?你有这个相关的属性,如果是私有的话呢,得提供这个属性的盖赛的方法。
07:27
对这呢,就满足一个扎阿病的一个要求了,就就是这个事儿的话呢,大家在我们高级里边讲反射的时候,大家会体会的更好。通过反射的时候呢,你就知道为什么咱们非要说给这个类呢,提供空餐的构造器,为什么非得要提供盖塞的方法,简单说一下就到时候呢,咱们比如说尤其是在这个JDBC当中,大家体会更好,就是我们会讲这个数据库中的这个表,这个表的数据呢,咱们要给它在Java层面呢做一些操作,咱们Java呢,这不是说是面向对象的嘛,既然面向对象了,那就意味着呢,数据库中表中的一条数据,咱们这呢,是不是都得作为Java中的一个类的对象出现啊,就像。
08:12
这个就是带大家也稍微简单看过一下,这我MYSQL的一个客户端,我连一下我本地的服务器,MYSQL的一个数据库,服务器连上以后的话呢,我就能够查到这个数据库当中的一些具体的表了,就在这呈现出来的我们这里边看到的这些数据,它的每一行相当于是一条记录。这一条记录就作为咱们Java类当中的一个对象。出现的,那我们这些数据呢,如果在Java层面咱们作一些增长改查,你得先能够转到我这个Java层面呢,作为一个一个的对象出现,那么这个对象你怎么造出来的,按照呢,咱们现在的思路是不是我们去扭一个呀,我们去扭一个这个对象,那new的时候呢,就涉及到调构造器了,那么从这个通用性的角度来讲,咱们呢,一般调的都是空餐的构造器。
09:05
咱们一般调的都是空参的构造器,既然你调的是空参构造器了,所以呢,我们说张2B的角度看,是不是一定得提供一个空参的呀,这是第一个原因,得提供一个空间的构造器,而且呢,你这个空间构造器权限你别太小了,就是你提供了权限又小,那我还是调不了,所以你一方面有另外一方面呢,你还得能让我调,所以呢,你权限呢也得大一点,那所以就提到了说提供一个空产的public的一个构造期行,那这样的话呢,能够保证我去造这个类的对象了,那我造完对象以后空散呢,显然呢,它这个属性值也都会是一些默认的。或者说呢,是你这个显示负过值的情况,那咱们这里边呢,每一个属性是不是都有具体的一个值啊,那下一步你就需要呢,拿着这个对象是不是去调那个set方法了,咱们的那个属性一般也都私有化了,那你这块呢,就得给我提供set方法,通过set方法让我呢一个一个的去把这个属性的值给附上,那附完以后,那么就类似的会出现这样的一条记录了,在Java层面呢,有个对象,这个对象呢,跟这里边我加了一个蓝框呢,这条数据呢是一一对应的,而且呢,你这里边的每一个字段。
10:18
纵向看,每一个字段就都作为我们Java里边的一个类的一个对象的属性出现了,能能大体上有这样一个感觉吧。有呗,就是大概有这样的一个意识啊,就是我们数据表当中的横向来看的一条记录,这不是大家你一看也知道,像这个呢,这不就他的ID姓名,邮箱,出生日期,这个photo的话呢,你可以存他这个图片的一个地址,这不都是可以作为一个对象的属性出现了,对这就可以了,知道这个概念就行,就像大家呢,你用手机这个商城一样,商城呢这块呢,就有购物车了,购物车的话呢,你里边放的一个一个的商品,其实每一个商品呢,都可以看作是一个对象了。
11:02
对吧。然后你这里边呢,对象的这些具体的你看到的还有一些情况,一些信息,这都可以作为这个对象的一个属性出现的一样,但是在这个数据库层面呢,那一条记录就是横向的一条,这个概念就是等我们后边讲到这个反射的时候,大家回过来再去体会我们说的这个障碍B呢,你会印象更深刻一些,慢慢来啊行,那目前的话呢,我们这两个类呢,就算是造好了,造好以后我们下面来测试CTRLC叫key test。行在这里边呢,我们写个没方法。接着呢,我们去创建一个叫case的对象,这个呢,都给你起好名了,叫sum k,给new一个kids out斜杠,咱们写了两个构造器,那我就造一个,比如调一下这个,比如说代餐的这个12岁了这样一下,那此时的话呢,我们可以去调我们这个sum k的它的这个,比如说方法,第二这个一方面呢,咱们自己定义过叫print age,这是它自己里边定义过的,我们调一下说I'M12啊,Yes old。
12:23
这就是他这个年龄,那另外一方面,由于呢,我们有了这个继承的结构,咱们呢,还可以调用他生命的父类当中的这个功能啊,比如说我们这个先做一个set,嗯,Set set years old,这个我好像没有写继承吧,目前没有写,所以这时候呢,你就不能去掉了,我们去CE咱们的慢。看集正,集正以后回过来,这时候呢,我们再来some k DR,我们呢,这个可以去set,那这时候就能看得到了。首先salary工资。
13:03
这个学生的话呢,我们就写个0SOME kid.side点它的这个sex写一个,比如说一写好了,写完以后呢,我们这个通过sum k呢,接着去调它的,比如叫employed,就是负类当中定义的sum k的点,还有一个呢,叫这个这个还有一个是什么方法看一下。这个man woman。奥斜杠,哎,这样一个方法行,那这里边呢,这四个方法呢,都是我们通过继承的方式拿到的这块你看他报错,这时候你记得点一下这个保存一下。这就好了,好直行,哎,这就出来了,嗯,那此时的话呢,这个salary呢,它是零,所以是no job,呃,性别呢是一,这个一,所以它是一个慢。这样情况,如果我们这时候呢,去画咱们这个创建的对象叫some k的,它的一个内存结构应该是这样子的,这是占,这是堆站里边叫sum k的堆里边你有一个对象,那对象里边问都有哪些属性,这个salary有吧。
14:24
对吧,有,然后sex也有,这呢都来自于它的父类,他自己呢定义了一个叫years oldld,这三个属性呢都有,都有这个呢,虽然说我们负类中这是私有的,咱们讲过了,这个子类对象在实例化的时候也有,然后呢,咱们通过这个赛的方法是不是呢,照样的可以去操作它这样的情况。行,这个大家要注意,包括呢,这个父类中定义那些方法呢,咱们在这个类加载的时候呢,这也会把那些方法呢,也都加载过来,都没有问题的,行这呢就体现为这个叫继承性的一个点。
15:01
行,这个题目的话呢,是一个比较基本的一个练习。
我来说两句