极*Java速成教程 -
Posted coveredwithdust
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了极*Java速成教程 - 相关的知识,希望对你有一定的参考价值。
Java语言基础
多态
多态是面向对象的一大重要特性,如果说封装是隐藏一个类怎么做,继承是确定一系列的类做什么,那多态就是通过手段去分离做什么和怎么做。
向上转型与收窄
在开发者将一类事物封装成类以后,他们的具体操作都被隐藏,而通过继承获得的“特化”的子类,满足了父类全部的性质,也就是说子类也是一种扩大的父类,子类比父类多了点东西。
那么以对父类的要求去要求子类,子类自然也全部符合要求,也就是说,可以用子类变量填充父类参数列表,用子类对象调用父类public方法,重写方法返回父类方法返回类的子类,这时候把子类的带有特性的东西丢出去一些就好,“给”的时候宜多不宜少。
我们不用关心操作的是子类还是父类,只要这个对象可以调用继承树根中的某一个类定义的方法就好。
向下转型与报错
如果把子类给了父类,就是多给了东西,Java编译器回把多余的丢掉,但是如果少给了东西,把父类给了子类,就会出现父类缺少子类特性的问题,就会不够用,就可能会报错。
绑定
将一个方法的调用和方法的主题关联起来叫做“绑定”,程序设计中,绑定分为两种,一种是当代码编译时就将方法调用和主体关联起来,叫做前期绑定,一种是运行起来以后才将方法调用和主体关联起来,叫做动态绑定。
动态绑定就像是有一个乐器演奏列表,列表中的每个乐器都要被演奏,对于程序来说,不知道下一个进来的是小提琴还是手风琴,但是只要是乐器(父类),乐器有演奏的方法,程序就能进行各种具体乐器(子类)和演奏的关联,然后对子类对象调用父类方法,就能正常运行(但是实际上运行的是子类从父类继承来的,可能进行了重写的方法)。
因此,我们应更关心类的设计,抽象出更合适的父类和继承关系结构,才能减少代码量,方便开发。
虽然Java绝大多数情况都是动态绑定,但final和static修饰的成员是静态绑定的,这是他们“最终”和“面向类的静态”的性质所决定的
以上是关于极*Java速成教程 - 的主要内容,如果未能解决你的问题,请参考以下文章