郁闷小男人 发表于 2009-1-22 16:49:57

Java基础--单重继承和多态性

单重继承
    如果一个类有父类,则其父类只能有一个,Java只允许从一个类中扩展类。这条限制叫单重继承。Java规定单重继承的限制,是因为它要让代码的可靠性更高。另一方面,为了保留多重继承的功能,Java提出了接口的概念。

    虽然一个子类可以从父类继承所有的方法和成员变量,但它不能继承构造方法。只有两种方法可让一个类得到一个构造方法,一种方法是自己编写一个构造方法,另一种方法是,因为用户没有写构造方法,所以系统为类提供唯一一个默认的构造方法。

    多态性
    在前面的例子中,我们说Manager类与Employee类之间具有“is a”关系,或者说,一名Manager也是一名Employee。这不仅仅是为了方便才这样做。事实上,Manager得到了父类Employee的所有属性,包括数据成员和方法成员。这意味着对Employee对象合法的操作,对Manager对象也合法。假定Employee类中有方法raiseSalary()和fire(),则Manager类亦有这两个方法。

    这引出对象是多态的,即它们有“许多形式”。一个具体对象可以有Manager的形式,也可以有Employee的形式。

    在Java中,有一个很特殊的类,它是所有类的父类,这就是java.lang.Object类。事实上,前面的定义是下面定义的简写方式为:
    public class Employee extends Object
    public class Manager extends Employee
    Object类定义了几个有用的方法,包括toString()。正因为有这个方法,Java中的所有对象内容都可转换为字符串。不过,对有些对象而言,转换成字符串没有什么意义,因此很少使用toString()方法。
页: [1]
查看完整版本: Java基础--单重继承和多态性