java面向对象程序设计浅谈之四经过前三篇的记叙.本篇主要叙的是类的继承和多态.
类的一个重要特性就是“继承“(inheritance).继承最主要的目的是“扩展“原本类的功能,加强或改进原本类所没有定义的属性及方法.
例:动物园里面有许多动物,仅一个前面Animal类要处理这么多种不同动物的属性及是很没有章法的.所以要设计其他的类,来管理这些动物的种类.
首先要修改一下Animal类,增加一个String类型的kind属性,用来记录动物的种类,当然也要把kind属性隐藏起来,再通过访问方法来访问.接着另外设计鱼、鸟、狮子这三个继承自Animal类。
在java语法里,继承用的是extends
下面是Fish类代码:
publicclass Fish extends Animal
{
public Fish(){
setLegs(0);
setKind(“Fish”);
}
}
Animal |
-legs:int -kind:String |
+Animal() +Animal(i:int) +eat() +move() +getLegs():int +setLegs(l:int) +getKind():String +setKind(str:String) |
Fish |
+Fish() |
Bird |
Bird() |
Lion |
Lion() |
Animal,Fish,Bird,Lion的UML图其中Fish,Bird,Lion继承Animal,因为没有合适的线表示,先这样了,建议CSDN中心能够尽快这些问题.
上面的程序代码很简单,只设计了一个构造函数,并且在里面设定legs,kind属性,Fish类继承了Animal类中的公共方法,注意不是全部方法,private的方法是无法被继承的.
类的多态:
简单的说就是一个类有其他表达方式,但是彼此之间是继承关系.使用多态时,有三点必须注意到;
第一就是东海就是东海,它不会因为用不同的表示来形容就会改变它原来的实例.
第二就是当你把东海当成大海来看时,那么你只能使用和访问大海所提供的属性和方法;
第三就是如果父类有方法被子类改写(override)时,那么当你以父类的观点来调用这个方法时,会去执行子类的方法.