Note to myself:
Blank finals must be initialized in the constructor. Ex:
class A { private int i;
A(int ii) { i = ii; }}
public class MainClass { private final int i = 0; // Initialized final
private final int j; // Blank final
private final A a; // Blank final reference
16 collapsed lines
// Blank finals MUST be initialized in the constructor: public MainClass() { j = 1; // Initialize blank final a = new A(1); // Initialize blank final reference }
public MainClass(int x) { j = x; // Initialize blank final a = new A(x); // Initialize blank final reference }
public static void main(String[] args) { new MainClass(); new MainClass(47); }}Java’da fonksiyonu final yapınca override yapılamaz.
class A { final void meth() { System.out.println("This is a final method."); }}
class B extends A { void meth() { // ERROR! Can't override. System.out.println("Illegal!"); }}Java’da class final yapılırsa o classtan inheritance kullanarak subclass oluşturulamaz.