Мое сомнение - это ссылочная переменная 'r', которая ссылалась на объект розы, теперь ссылается на цветочный объект.Ссылка на переменную в Java?
Что случилось с поднятым объектом сейчас? Будет ли оно уничтожено?
Я следующий код:
class Flower
{
public void smell() // I
{
System.out.println("All flowers give smell, if you can smell");
}
}
public class Rose extends Flower
{
public void smell() // II
{
System.out.println("Rose gives rosy smell");
}
public static void main(String args[])
{
Flower f = new Flower();
Rose r = new Rose();
f = r; // subclass to super class, it is valid
f.smell(); // II
}
}
Ваш цветочный объект не будет иметь никаких ссылок на него, поэтому он будет очищен всякий раз, когда запускается сборщик мусора (вам не нужно беспокоиться о освобождении памяти). – Supericy