【整理】接口,抽象类,继承和多态

首先是基本信息,面向对象编程有三个特征,即封装、继承和多态。

封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。

继承是为了重用父类代码,同时为实现多态性作准备。

那么什么是多态呢?多态的使用是为了使得程序开发时,控制代码的耦合性,使得开发,维护,修改的代价保持在较低水平。

当当这样说肯定是不足以说明的,先来看下面的例子。

Java和C++中的描述略有不同,因为C++允许多继承,而Java是单继承。

这里先给出Java多态的测试:


public class Father {
	
	public int test = 1;
	
	public void print() {
		
		System.out.println("Father have:" + test);
		
	}	
	
	public static void main(String[] args){
		
		Father son = new Son();
		
		son.print();
		
		System.out.println("Now have:"+son.test);
		
		Son _son = (Son)son;
		
		System.out.println("Now have:"+_son.test);
			
	}

}
public class Son extends Father {
	
	public int test = 2;
	
	public void print(){
		
		System.out.println("Son have:" + test);
		
	}	
}

/** 输出 **/

Son have:2
Now have:1
Now have:2

了解了基本的多态方法后,就会遇到一个问题,什么时候该使用多态?

这篇文章介绍了如何避免被你的项目经理”消灭”的方法

例如我们有一位用户的测速需求,他现在使用的是JD,而过了一段时间改用Benz,如果高耦合的开发很可能要重新添加修改大量代码。所以引进了多态。这时可以回过头看上面的话:

多态的使用是为了使得程序开发时,控制代码的耦合性,使得开发,维护,修改的代价保持在较低水平。

回头找来C++的书,写一写C++的多态代码

此条目发表在C++, JAVA, 编程分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注