java面向对象程序设计浅谈之四



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)时,那么当你以父类的观点来调用这个方法时,会去执行子类的方法.

http://blog.csdn.net/wdhsoft/article/details/1534882