微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在抽象类java中调用非抽象方法

我有3节课.这似乎是基本问题.但我不能通过谷歌搜索找到答案.

public abstract class Test {

    void t1()
    {
        System.out.println("super");

    }

}
 public class concret extends Test{

    void t1()
    {
        System.out.println("child");

    }
    void t2()
    {
        System.out.println("child2");

    }

}

public class run {
    public static void main(String[] args) {
        Test t=new concret();

        t.t1();
    }

}

如何调用抽象类t1方法?由于我无法从抽象类创建对象,如何在抽象类中调用t1?
谢谢.

解决方法

要么创建一个不覆盖该方法的具体类,要么在一个覆盖该方法的具体类中,可以调用super.t1().例如:

void t1()
{
    super.t1(); // First call the superclass implementation
    System.out.println("child");
}

如果你只有一个覆盖方法的对象实例,你就不能从类的“外部”调用原始方法,因为这会破坏封装…覆盖的目的是替换原始方法的行为.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐