示例:如何将otherSpecificProcessing方法设为私有方法?
原因:我希望能够新建一个B或C类型的对象,并且程序员只能看到doStuff()。同时,B类和C类提供附加功能
abstract class A
{
protected abstract void furtherSpecificProcessing();
//concrete method utilizing abstract method
public void doStuff()
{
//busy code
furtherSpecificProcessing();
//more busy code
}
public class B extends A
{
public void furtherSpecificProcessing
{
//Class B specific processing
}
}
public class C extends A
{
public void furtherSpecificProcessing
{
//Class C specific processing
}
}
答案 0 :(得分:3)
答案 1 :(得分:2)
将furtherSpecificProcessing()
覆盖为受保护,而不是扩展类中的公开。
答案 2 :(得分:1)
在B和C类中将方法声明为protected而不是public。 比你需要的还要工作:
B b = new B();
b.doStuff(); // Will do stuff
b.furtherSpecificProcessing(); // Will not compile
同样适用于C类实例