public virtual class parent {
public static void doStuff(){system.debug('stuff');}
}
public class child extends parent{}
Kiedy zadzwonićCzy salesforce Apex obsługuje dziedziczenie metod statycznych?
child.doStuff();
otrzymuję ten błąd: Metoda nie istnieje lub nieprawidłowy podpis: child.doStuff()
Czy metody statyczne nie odziedziczone w Salesforce czy robię coś źle ?
Właściwie, zgodnie z odpowiedzią tutaj: http://stackoverflow.com/questions/5316705/overriding-properties-from-abstract-class-in-salesforce-apex 'virtual' może być użyty tylko na metodach. –
Wirtualny nie tylko MOŻE być stosowany na zajęciach, ale musi być, jeśli klasa zostanie odziedziczona. I nie, nie oznacza to, że każda metoda musi zostać wdrożona. "Wirtualny" po zastosowaniu do metody oznacza, że metoda MOŻE zostać nadpisana. A "wirtualny" po zastosowaniu do klasy oznacza, że można ją odziedziczyć. – naomi
Myślę, że problem nie jest związany z vtable. Myślę, że chodzi o to, że publiczna statyczna metoda klasy nadrzędnej nie jest widoczna przy użyciu pseudonimu klasy potomnej. W teorii OOP próbka powinna działać, a kompilator powinien zapoznać się z klasą nadrzędną przed odrzuceniem nazwy metody. – mmix