我有 Class1 包含许多私有内部匿名类,例如:
ClassAInterface var1=new ClassAInterface {
.....
当我从 Class1 继承 Class2 时,是否可以不继承所有这些类而是用新的替换?所以所有使用这些类变量的方法将只使用继承类中的对象。还是以另一种方式存在?所以我想继承方法,工作逻辑,但不喜欢继承数据结构。谢谢
我有 Class1 包含许多私有内部匿名类,例如:
ClassAInterface var1=new ClassAInterface {
.....
当我从 Class1 继承 Class2 时,是否可以不继承所有这些类而是用新的替换?所以所有使用这些类变量的方法将只使用继承类中的对象。还是以另一种方式存在?所以我想继承方法,工作逻辑,但不喜欢继承数据结构。谢谢
您应该使用嵌套类或也称为静态内部类:
public class Class1{
// fields and methods for Class1
protected static MyInnerClassA{
//some fields methods here for MyInnerClassA
}
}
因此,当您从 Class1 继承时,您可以创建 MyInnerClassA 的新实例,因为该实例是可访问的。简而言之,在这种情况下,静态关键字允许独立于其父类的内部类。
任何私有的东西都不能在子类中继承。
如果您希望继承“方法、工作逻辑,而不是数据结构”,则需要使用interface
更多和组合而不是继承。