Предположим, что я иметь следующий класс
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 его родительского класса? метод в дочернем классе? Любой пример такого сценария?