A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    今天学习了面向对象的三大特征之一——多态,以及接口。
    接口的出现打破了继承的单一性,也就是说当类与类之间已经存在了继承关系后且子类中只有其中一部分拥有共同的成员,此时并不能将该部分子类进行再次继承(继承单一性),如果要一一的将共同的成员写到各个子类中的话就会使代码变得臃肿,更多的占用内存,使程序的优化变得粗糙。也使得继承失去意义。而接口的出现相当与用另外一种方式将类之间的共性抽取出来进行联系。它与继承很相似,但其中最大的区别是将代码的耦合性降低了,而继承则增加了代码的耦合性。
    其二的特点是给程序添加了规则。其思想是:当根类中有功能,创建出很多个接口,其接口中必须包含根类中的所有实现方法,且接口原则是必有拥有自己特有的其他功能(比如ArrayList<>和List<>),否则接口将失去意义(没有特有功能就没必要用接口,直接用根类),换句话来说就是,我制定了一套规则,你必须都做到,要不然你就被pass掉。你如果将我的规则都实现了,自己又添加了对大家都有用的新规则,那你就可以代替我去收小弟了。
    多态其实可以用一句话来形容“父类引用指向子类对象”。其意义就是一个由小到大转型的过程,其对象是子对象,但调用的是父类的成员变量,其方法不被static静态修饰符所修饰的方法引用的是子类的的方法,用static修饰的方法用的就是父类的。因为用static修饰的方法就涉及到了static的特点,其变量点上方法名其实就是用该变量的类型的类名去调用该方法也就调用父类的。多态打个比方来说就是你可以说狗是动物的一种但不能说动物就是狗,如果你要想说成动物就是狗的话就只能向下转型—强制转。。。      
    Dog XXX = (Dog) dog;其在多态的运用中大多数是将拥有特有共性的属性抽取出来再用其父类的类型进行赋值,这样既可以调取相同的功能又能使各个不同的子类显现出来,增加了程序的可扩展性。
    嗯,今天的学习总结就到这里了,主要是心血来潮一不小心就写了这些,以上都是我自己所理解的学习总结,如果有什么理解错误的地方请各位老师及时提醒我 ,谢谢。

3 个回复

正序浏览
加油,骚年,坚持总结,查漏补缺
回复 使用道具 举报
很好,继续努力哈
回复 使用道具 举报
总结很不错    加油啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马