Вопрос о финализаторах в Java

Предположим, что я иметь следующий класс

   class A {
           //some attributes 

        @override
         protected void finalize() throws Throwable {
              //do something

       }
  }


   class B extends A {

           @override
         protected void finalize() throws Throwable {
             //DONT call super.finalize() 
             //do something

       }
     }

Что произойдет в этом сценарии? Будет ли в какой-то момент вызван вызов метода finalize класса A сборщиком мусора?

В чем разница между его вызовом и отказом от вызова метода finalize в методе finalize дочернего класса, если он все равно будет вызываться сборщиком мусора?

В каком сценарии НЕЛЬЗЯ вызывать метод finalize его родительского класса? метод в дочернем классе? Любой пример такого сценария?

0
задан Vinoth Kumar C M 29 July 2011 в 12:04
поделиться