簡體   English   中英

如何使用抽象超類中子類的方法

[英]How to use methods from a subclass in an abstract super class

這是解釋我的情況的基本框架代碼。

這是超級抽象類:

public abstract class Person 
{   
    public void buyFood(String foodName, int payment)
    {
        System.out.println("Buy " + foodName + " and pay $" + payment + ".");
        pay(payment);
    }
}

這是超抽象類的子類:(請注意,我刪除了其他函數(例如,構造函數和方法)以簡化本文。

public class Visitor extends Person
{        
    public void pay(int amount)
    {
        money_v -= amount;
        System.out.println(this.to_s() + " has got HK$" + money_v + "left.");
    }

}

我想在抽象類中使用此public void pay(int amount)方法; 但是,由於該方法不在范圍之內,因此超抽象類Person將不接受pay(pay)。 如何使這項工作?

謝謝〜

在超類中創建pay作為抽象方法,以便子類隨后覆蓋/實現它:

abstract public void pay(int amount);

@LarsChung:代碼附在下面:

public abstract class Person 
{   
    public void buyFood(String foodName, int payment)
    {
        System.out.println("Buy " + foodName + " and pay $" + payment + ".");
        pay(payment);
    }

    public abstract void pay(int amt);
}

public class Visitor extends Person
{      

    @Override  
    public void pay(int amount)
    {
        money_v -= amount;
        System.out.println(this.to_s() + " has got HK$" + money_v + "left.");
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM