super to nadklasa.
super.onResume(); powołuje metody z nad klasy.
Czasami trzeba podmienić cały sposób funkcjonowania nad klasy, a czasami chcemy tylko zmienić jego cześć zachowania.
Przykład:
public class ClassA{
public int getTypeCount(){
return 2;
}
}
public class ClassB extends ClassA{
@Override
public int getTypeCount(){
return super.getTypeCount()+2;
}
}
Szczególnym przypadkiem, który warto poznać to wywoływanie nadklasy w konstruktorze, a jednocześnie zastosowanie słowa kluczowego final.
public class ClassA{
protected final int a;
public ClassA(int a){
this.a = a
}
}
public class ClassB extends ClassA{
final int a;
public ClassB(int a){
super(a);
this.b = b;
}
}
super w konstruktorze musi być jako pierwsze w konstruktorze.
this to aktualny obiekt. Jak widzisz w przykładzie, gdyby napisać po prostu a = a to kompilator pomyślałbym, że chcesz zrobić masło maślane, ale this konkretyzuje twoje polecenie. W konstuktorze this powoduje wywołanie konstruktora z tej samej klasy, ale innego. this jako parametr metody powoduje przekazanie samego siebie, gdzieś dalej.
Temat przycisków był omawiany na forum.
https://forum.android.com.pl/topic/382285-metoda-onclick-dla-wielu-przyciska-w/
https://forum.android.com.pl/topic/84964-listenery/
//TODO Auto-generated method stub
Informuje, że metoda została utworzona automatycznie i nic nie zawiera. Warto by tu coś napisać. Jednocześnie przez TODO niektóre programy potrafią wygenerować listę rzeczy do zrobienia (to-do list).
Słówko final jeśli dotyczy metod oznacza, że nie można ich przeciażać w podklasach. Jeśli dotyczy pól to oznacza, że trzeba ustawić♥zawartość przy tworzeniu obiektu klasy tj. wartość ustalić w konstuktorze lub przy tworzeniu pola. Jeśli dotyczy zmiennych w metoda oznacza, że nie można zmienić zawartości, a zarazem można przekazać te dane do klasy anonimowej.