对java的总结

来源:互联网 发布:sql select返回值类型 编辑:程序博客网 时间:2024/05/22 08:15

java中的继承与多态

1、构造方法在类继承中的作用

            构造方法不能继承。由于子类对象要对继承来自父类的成员进行初始化,因此,在创建子类对象时除了执行子类的构造方法外,还需要调用父类的构造方法。具体遵循如下原则:

         (1)、当子类未定义构造方法时,创建对象将无条件地调用父类的无参构造方法。

          (2)、对于父类的含参数构造方法,子类可以在自己的构造方法中使用关键字super来调用它,但super调用语句必须是子类构造方法中的第一个可执行语句。

           (3)、子类在自己定义的构造方法中如果没有用super明确调用父类的构造方法,则在创建对象时,首先自动执行父类的无参构造方法,然后再执行自己定义的构造方法。

        调用父类的构造方法是必要的,原因在于子类不能直接访问父类的私有属性,所以,请父类的构造方法帮忙完成初始化,这与c++相同

       以下程序在编译时将出错,原因在于父类不含无参构造方法。

     class parent{

    string my;

    public parent(string x)

     {

        my = x;

     }

public  class subclass extends  parent{}

在parent类中由于定义了一个有参构造方法,所以系统不会自动产生无参构造方法。

}

如果将有参构方法注释,则编译可以通过。

鉴于上述情形,一个类在设计时如果有构造方法,最好提供一个无参构造方法。

多态性

一般情况下,面向对象的多态性体现在以下两个方面:

(1)方法的重载。也称参数多态,是指在同一个类中定义多个方法名相同,但参数形态有所区分的方法。一个类有多个构造方法称为构造方法的多态性。

(2)子类对父类方法的覆盖。是因继承带来的多态,子类中可对父类定义的方法重新定义,这样,在子类中将覆盖掉来自父类的同形态方法。

 

原创粉丝点击