毕业已经上了日程,马上开始做毕业设计了,java书再一次被我拿了出来。结果看得时候发现一个令人兴奋的现象,发现原来学的时候好多不懂的地方,现在好像都懂了,现在就来简明的谈谈什么是面向对象。
所有的客观事物都可以看做对象。把具有相同状态(静态特征)和行为(动态特征)的对象进行抽象总结,构成模型—类。比如“狗”这种类,都有感官,四肢,还能叫。其中,感官官和四肢是狗的属性的一部分,“叫”是狗的行为特性。这些属性,行为共同的作用把狗和其他种类的动物区分开。狗这种类只是一个抽象的概念,它并不对应 具体的物体。而真实存在的某只狗,比如谁家养了一条狗,这才是可以称作是一个对象。
当然狗这种类里面可以再分类,比如大狗和小狗。这两类都具有狗的共有的特性,但是还可以找到一些其他的特性来区分他们。比如小狗的身材较小,毛发柔软等。而大狗则不同,等等。那么,当你定义一个小狗为狗这种类的继承类时,小狗除了自动继承狗这种类的特性,还可以另外定义一些属性和行为,比如小狗吃奶等。而某个具体的狗,比如《人狗奇缘》中的将军(狗的名字),则可以称作是狗类别里面的一个对象。
对于一个类别里面定义好的行为,可以根据子类的不同进行不同的实现。比如狗类的叫,大狗和小狗的叫的方式明显的不同。如果只是在狗类里面就定义好 行为这个特性,并不实现它。而是在大狗和小狗各自继承的叫的特性里,做好不同的实现。这样,当你定义一个大狗的对象时,也可把它看做是一个狗类的对象,当 这个狗类的对象叫时,他会自动选择用大狗的方式来叫。也可以这么说,相同类别的对象们,根据自己所属子类的不同而对同一行为做出不同的表现。这就叫多态。
这里说了面向对象中的最重要的几个概念,对象,类,继承和多态,这几个概念理解了,或许对面向对象的理解算是初步入门了吧