正如问题所述,我想知道如何在其他类可以访问的类中创建函数,但子类不能。我有一个类有一些公共getter和setter,我希望我的文档类有权访问,但我不希望子类具有这些功能,因为它们对子类没用。如何制作不被子类继承的公共方法?
例如
public class SomeClass
{
public function SomeClass() {}
public function notInherited():void { trace("Not inherited"; }
}
public class OtherClass extends SomeClass
{
public function OtherClass()
{
notInherited(); //Want this to return an error
}
}
public class HasAccess
{
public function HasAccess()
{
notInherited(); //Not inherited
}
}
我知道这可能有事情做与自定义命名空间,但关于他们的搜索起来后,我还是真的没有什么,他们是如何工作太多的了解。就是这样;谢谢阅读。
你不能,如果你有任何类访问除子类以外的方法,你描述了什么。如果一种方法具有公共访问权限(而内部是公共访问的一种形式),那么任何语言都不可能做到这一点,那么公共访问不能被任何其他类别拒绝,我应该添加完全不相关的甚至尝试实现。如果该方法对子类没有影响,那么让它不起作用,只要这些方法不能被覆盖,为什么你会关心这么多。 – BotMaster
@BotMaster对于OP来说很清楚,使用'internal' *会限制对同一个包中的子类*的访问,而不同包中的子类将不能*访问。我确定这就是你的意思。 – Aaron
这还远远不符合法案,并且效果不会影响只有所有类别的子类。同一包中的所有类和子类都将具有访问权限,所有类和子类之外的包都将无法访问,这是非常不同的。由于这些方法对子类没有影响,因此将它们标记为最终应该就足够了。 – BotMaster