Abstract クラスの実装クラスがメソッドのスコープを保護からパブリックに変更することを制限するにはどうすればよいですか?
例:抽象クラスがあるとします
package com.rao.test;
public abstract class AbstractTEClass {
protected abstract void function1();
protected abstract void function2();
protected void doWork() //I want to call the abstract methods from this method.
{
function1(); //implementation classes will give implementation of these methods
function2();
}
}
今、私は上記の抽象クラスを拡張する実装クラスを持っています
package com.rao.test;
public class AbstractTEClassImpl extends AbstractTEClass {
@Override
public void function1() {
// TODO Auto-generated method stub
System.out.println("FUnction1");
}
@Override
public void function2() {
// TODO Auto-generated method stub
System.out.println("Function2");
}
public static void main(String[] args)
{
AbstractTEClassImpl objTEClass = new AbstractTEClassImpl();
objTEClass.doWork();
}
}
ここで、実装クラスの 2 つの抽象メソッドのスコープを保護からパブリックに変更していることに注意してください。実装クラスがスコープを変更しないように制限するにはどうすればよいですか。
デザインの変更や推奨事項、パターンは大歓迎です。