最近认真的看了一下java的类与继承,感觉收益良多,以前不知道或者记得不是很清楚的现在都比较清晰了,首先,对于java这种面向对象的
语言而言,一切都是类,所有的代码都是写在类中的,在java的世界中,人,电脑,树等等都可以称为类,那么,类怎么定义呢?与现实相同
人拥有年龄,眼睛等等信息,这些信息在构建一个people.java这个类时就是属于数据成员,一个人能够奔跑,吃饭,睡觉,思考等等,这些
是人能做的事,这在java中是属于方法(函数),那么如何奔跑就需要在这个方法中的方法体内定义了,比如快步走,跑等,事实上我们老是说
人,其实还不够具体形象,因为人是一个泛称,因为每个人都是不同的,那难道我们需要定义无数个类吗?当然不是,就好比难道女娲将所有
的人都造出来了吗?并不是,那么地球上这么多人怎么来的呢?哎呀,需要说一些羞羞的事了,好高兴呀!当然是通过“生”这种方式来的,
那么总得有个最初的吧,的确,这在java中对应的是Object这个类,那么现实中我们是称呼把自己生下来的人称为父母,这在java中被称为
父类,这个父类代表的就是现实中的父母,那么在现实中,你只可能由一个父母生下来,不可能有两个亲生父母,这在java中被称为单一继
承,那么,当我们还是一个刚生下来的小孩时,我们有什么呢?我们依然有年龄,眼睛等等信息,但是我们并不是拥有父母的所有数据成员,
比如,他们拥有阅历,经验,我们并没有,这就对应于java的父类中的私有成员或者是不同包的在父类中定义为默认的成员,我们依然会睡觉,思考(这一个就不知道会
不会了)等,但是我们会奔跑吗?不会,也就是说我们只是会其中一部分,另外的一部分还需要我们自己长大,也就对应于java的重写方法,
那么我们跟父母一样吗?很明显我们不一样,因为我们拥有自己的性格,自己的阅历,以及自己的奔跑方式,思考方式等,可是,在现实中
经常会有人说,哇,你长的好像你的父母,那么这个对应于什么呢?这个对应于java中的每个子类对象都拥有自己的父类对象,那么,等你
有一天有了自己的小孩,这在java中就对应于每个父类也可以是别的类的子类,那么,你可以称呼自己的小孩为儿子,而你的父母则是称呼
他为孙子,那么这个小孩是你和你老婆生下来的,他跟你们会有相似之处,跟你的父母也会有相似之处,同时你们的父母,都可以叫你们吃
饭,睡觉等等做一些事情,当你的父母叫你睡觉时,你可能会说知道了,但是并不会马上睡觉,而你的父母跟你小孩说的时候,他可能马上
就会睡觉,那么这对应于java中的什么呢?这对应于java中一个很重要的称为多态的机制,就是说父类的引用可以指向子类的对象,当父类
执行某个大家都有的方法时,会根据具体的对象去执行具体的方法中的方法体(当子类的对象指向父类的引用,当这个引用执行父类和子类都有
的方法时,会去执行子类的方法,而不是父类的方法),这就是多态。假设你父母由于年纪大了,容易生病会咳嗽,但是他们不可能叫你咳嗽,因为
你们年轻,不太会生病咳嗽(这就是说当子类的对象指向父类的引用,那么当这个引用执行父类独有的方法时,是执行父类的方法,
而不是子类的方法,其实也是白说,因为子类都没有这个方法。),对于你的这个家族,你们可以相互帮忙,家族这对应于
java的包。