如何从它的构造函数中调用父类方法

时间:2013-04-24 06:08:27

标签: java

我正在创建子类对象。我知道第一个调用父类构造函数。如果我想调用父类print方法,那么我使用'this.print()'但这不起作用。 请建议我如何在不创建父类对象的情况下调用父类print()方法... 谢谢你提前。

public class Test
        {
            public static void main(String[] args) 
            {
                Child Child = new Child();
            }
        }

        class Parent
        {   
            void print()
            {
                System.out.println("parent class print method");
            }

            Parent()
            {
                this.print();
            }
        }    

        class Child extends Parent
        {
            void print()
            {
                System.out.println("child class print method ");
            }
        }

4 个答案:

答案 0 :(得分:5)

在子constructor中的

您可以调用超类方法,如:

super.print();

请参阅java docs

public class Superclass {

    public void printMethod() {
        System.out.println("Printed in Superclass.");
    }
}    



public class Subclass extends Superclass {

    // overrides printMethod in Superclass
    public void printMethod() {
        super.printMethod();
        System.out.println("Printed in Subclass");
    }
    public static void main(String[] args) {
        Subclass s = new Subclass();
        s.printMethod();    
    }
}

答案 1 :(得分:1)

要调用任何父方法,请使用super。这也适用于构造函数:

class Child extends Parent
{
    void print()
    {
        System.out.println("child class print method ");
    }

    Child() {
        super.print(); // parent print method

        this.print(); // child print method
    }
}

答案 2 :(得分:0)

“this”关键字指当前类,“super”关键字指其分别扩展或实现的父类或接口。

答案 3 :(得分:0)

通过回答我的问题,明确我的概念..

public class Test
{
    public static void main(String[] args) 
    {
        Child Child = new Child();
    }
}

class Parent
{   
    void print()
    {
        System.out.println("parent class print method");
    }

    Parent()
    {
        this.print();
    }
}    

class Child extends Parent
{
    void print()
    {
        super.print();
    }
}

输出:

parent class print method