多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
Java多态的作用
消除类型直接的耦合关系,使代码更加清晰明了。
Java多态的具体理解
简单的理解,就是用一个父类就能够引用不同的子类,这就是多态。 比如说我的一个Shape(父类),既可以是Triangle(子类),也可以是Square(子类),这样子的话,Shape呈现出了不同的形态,也是多态。
下面我们来看一个简单的例子:
Shape s = new Triangle(); s.draw();
上面的例子创建了一个指向子类的父类引用类型,调用的也是方法,会先调用父类Shape的方法,然后再是Triangle里面的方法。这是Java的一个“后期绑定”机制,只有在运行的时候,判断对象的类型,然后调用对应的方法。
创建一个指向子类的父类类型引用,该引用既可以处理父类Father对象,也可以处理子类Child对象,当相同的消息发送给子类或者父类对象时,该对象就会根据自己所属的引用而执行不同的行为,这就是多态。关于多态的实现方式:请仔细阅读:Java 多态 章节。
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点