2015-02-18 2 views
1

код, который я хочу использовать этоКак обнулить производный объект в качестве базового класса

private void removeInstance (BaseClass b) { 
    // some more code 
    b = null; 
} 

b может быть экземпляром подкласса BaseClass. Например,

public class C extends BaseClass {/* Some Code */} 

Это то, что должно быть возможно.

C c = new C(); 
// some code 
removeInstance (c); 

Однако в настоящее время не установлено c к null, как c отливают BaseClass в этом примере.

Я хочу иметь возможность установить экземпляр в null из базового класса так или иначе.

+0

Непонятно, что вы хотите сделать. Что должно делать 'removeInstance'? Вы знаете, что вы не касаетесь фактического объекта за пределами 'removeInstance', правильно? Переходите по значению, переходите по ссылке по виду. –

ответ

3

Вы не можете этого сделать. Java - это пароль по значению. Установка переменной b в null не влияет на переменную c, переданную этому методу.