2012-05-03 3 views
0

У меня есть Class1, который содержит множество частных внутренних анонимных классов, как:Возможно ли наследовать некоторые частные внутренние классы в java?

ClassAInterface var1=new ClassAInterface { 
..... 

Когда я наследовать Class2 от Class1 возможно не наследует все эти классы, но заменить его новым? Таким образом, все методы, которые использовали эти переменные класса, будут использовать только объекты в унаследованном классе. Или существует другой способ? Так что я бы хотел наследовать методы, логику работы, но не хотел наследовать структуры данных. Благодаря

+1

Ничто частное не может быть унаследовано. Только защищенные/публичные участники могут быть унаследованы. – Bernard

+0

Из документов: Подкласс наследует все члены (поля, методы и вложенные классы) из своего суперкласса. – user810430

+0

http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html – user810430

ответ

1

Вы должны использовать вложенный класс или также называемый статический внутренний класс:

public class Class1{ 

    // fields and methods for Class1 

    protected static MyInnerClassA{ 

     //some fields methods here for MyInnerClassA 
    } 
} 

Таким образом, когда вы унаследовали от Class1, вы можете создать новые экземпляры MyInnerClassA, потому что это один доступен. Вкратце, статическое ключевое слово в этом случае позволяет получить класс Inner независимо от его родительского класса.

0

Если вы хотите наследовать «методы, логику работы, но не структуры данных», вам нужно использовать interface больше и composition, а не наследование.

1

Любое личное никогда не может быть унаследовано в подклассе.