1

我正在创建子类对象。我知道首先调用父类构造函数。如果我想调用父类打印方法,所以我使用'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

4 回答 4

5

在 childconstructor你可以调用一个超类方法,如:

super.print();

参见 java 文档

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();    
    }
}
于 2013-04-24T06:10:15.377 回答
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
    }
}
于 2013-04-24T06:12:10.190 回答
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
于 2013-04-24T06:56:57.383 回答
0

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

于 2013-04-24T06:14:00.300 回答