我有1类包含像许多私有内部匿名类:是否有可能不继承java中的一些私有内部类?
ClassAInterface var1=new ClassAInterface {
.....
当我继承的Class2从1类是有可能不继承所有这些类,但新更换?所以使用这些类变量的所有方法将只使用继承类中的对象。或者存在另一种方式? 所以我想继承方法,工作逻辑,但不喜欢继承数据结构。 感谢
我有1类包含像许多私有内部匿名类:是否有可能不继承java中的一些私有内部类?
ClassAInterface var1=new ClassAInterface {
.....
当我继承的Class2从1类是有可能不继承所有这些类,但新更换?所以使用这些类变量的所有方法将只使用继承类中的对象。或者存在另一种方式? 所以我想继承方法,工作逻辑,但不喜欢继承数据结构。 感谢
您应该使用嵌套类或也称为静态内部类:
public class Class1{
// fields and methods for Class1
protected static MyInnerClassA{
//some fields methods here for MyInnerClassA
}
}
因此,当你从Class1的继承,你可以创建MyInnerClassA的新实例,因为这一次是访问。简而言之,在这种情况下,static关键字允许独立于其父类的Inner类。
如果您希望继承“方法,工作逻辑,但不是数据结构”,则需要使用更多的interface
和更多的composition而不是继承。
私有东西永远不能在子类中继承。
没有什么是私有的可以继承。只有受保护/公共成员可以继承。 – Bernard
来自docs:子类从它的超类继承所有成员(字段,方法和嵌套类)。 – user810430
http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html – user810430