English 中文(简体)
A. 部队继承类别,以确定方法
原标题:Force inherited classes to define method
  • 时间:2010-11-17 11:36:36
  •  标签:
  • java

超级阶级是账户,我有两个子类别——经常账户和储蓄账户。

超级阶级将采用“Interest”(Interest)”的方法,该方法将使用继承类别规定的利率计算利息。 我不知道如何强迫某个阶层来界定这一点。

我认为,唯一的选择是强迫下级人员执行“内部”申请,并且只是确定其中的费率。

最佳回答

I m not sure if I understand your question, but I think you may use the keyword abstract if you don t want to introduce an interface

public abstract class Account
{
    public int applyInterest()
    {
        return 10 * getInterestRate();
    }
    abstract protected int getInterestRate();
}

public class CurrentAccount extends Account
{
    protected int getInterestRate() { return 2; }
}

public class SavingsAccount extends Account
{
    protected int getInterestRate() { return 3; }
}

import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class AccountTest
{
   @Test
   public void currentAccount()
   {
       Account ca = new CurrentAccount();
       assertTrue(ca.applyInterest()==20);
   }
   @Test
   public void savingsAccount()
   {   
       Account sa = new SavingsAccount();
       assertTrue(sa.applyInterest()==30);
   }
}
问题回答

如果情况较好,你可以强迫子类执行。

The best solution is to make the class Account as abstract. If you don t want to do this for any reason (then, Account must be instantiable) you can write:

applyInterest(){
throw new RuntimeException("Not yield implemented");//or another Exception: IllegalState, NoSuchMethodException, etc
}

Really, it s not the best idea in the world (the best idea is to make Account as abstract class), but when you test the subclass of Account and call the applyInterest(), this exception force you to implement this method in the subclass.

这只是另一种方式。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签