metody w klasach dziedziczacych
Leszekr - 17-10-2007 00:02
metody w klasach dziedziczacych
Mam nastepujaca sytuacje:
public class A extends JPanel{
protected void paintComponent(Graphics g){ drawSomething(); g.drawString("cos tam") }
protected void drawSomething(){ System.out.print("A"); } }
public class B extends A{
protected void drawSomething(){ System.out.print("B"); }
}
Problem jest taki, ze w egzemplarzu B wykonuje sie metoda drawSomething z A. Dlaczego tak jest i jak zmusic zeby wykonala sie metoda z klasy B zamiast A.
pozdr
leszekr
Damian - 17-10-2007 00:02
Leszekr <leszek@compi.net.pl> wrote in news:ff1ptk$lvt$1@node1.news.atman.pl:
> Problem jest taki, ze w egzemplarzu B wykonuje sie metoda drawSomething > z A. Dlaczego tak jest i jak zmusic zeby wykonala sie metoda z klasy B > zamiast A.
Na początek proponuję:
public class B extends A{
@Override protected void drawSomething(){ ....
-- Damian
Brzezi - 17-10-2007 00:02
wto, 16 paź 2007 o 09:39 GMT, Leszekr napisał(a):
> Problem jest taki, ze w egzemplarzu B wykonuje sie metoda drawSomething > z A. Dlaczego tak jest i jak zmusic zeby wykonala sie metoda z klasy B > zamiast A.
U mnie wypisuje B, upewniej sie ze na pewno masz instancje klasy B a nie A, bo innej mozliwosci nie widze
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ Ta sygnatura zostala automagicznie ] [ Ekg: #3781111 ][ wygenerowana programem Signify v1.14. ] [ LinuxUser: #249916 ][ Po ten i inne super programy, ] [ zajrzyj na http://www.debian.org/ ]
Brzezi - 17-10-2007 00:02
wto, 16 paź 2007 o 09:46 GMT, Damian napisał(a):
> Na początek proponuję: > > public class B extends A{ > > @Override > protected void drawSomething(){ > ...
Adnotaja ta nic nie daje praktycznego, jedynie kompilator bedzie protestowal w momencie jezeli probojesz przeslonic metode ktorej nie ma (np. literowka w sygnaturze metody) wtedy sie adnotacja przydaje...
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ We don't believe in rheumatism and true ] [ Ekg: #3781111 ][ love until after the first attack. ] [ LinuxUser: #249916 ][ -- Marie Ebner von Eschenbach ]
Maciej Piechotka - 17-10-2007 00:02
On Tue, 16 Oct 2007 11:04:21 +0000, Brzezi wrote:
> wto, 16 paź 2007 o 09:46 GMT, Damian napisał(a): > >> Na początek proponuję: >> >> public class B extends A{ >> >> @Override >> protected void drawSomething(){ >> ... > > Adnotaja ta nic nie daje praktycznego, jedynie kompilator bedzie > protestowal w momencie jezeli probojesz przeslonic metode ktorej nie ma > (np. literowka w sygnaturze metody) wtedy sie adnotacja przydaje... > > Pozdrawiam > Brzezi
Będzie prostestował w mpmencie w którym nie przysłonię metody. To też informacja...
Pozdrawiam -- I've probably left my head... somewhere. Please wait untill I find it. Homepage (pl_PL): http://uzytkownik.jogger.pl/ (GNU/)Linux User: #425935 (see http://counter.li.org/)
Damian - 19-10-2007 00:01
Maciej Piechotka <uzytkownik2@gmail.com> wrote in news:fl8fu4- kjg.ln1@router.piechotka.com.pl:
> On Tue, 16 Oct 2007 11:04:21 +0000, Brzezi wrote: > >> wto, 16 paź 2007 o 09:46 GMT, Damian napisał(a): >> >>> Na początek proponuję: >>> >>> public class B extends A{ >>> >>> @Override >>> protected void drawSomething(){ >>> ... >> >> Adnotaja ta nic nie daje praktycznego, jedynie kompilator bedzie >> protestowal w momencie jezeli probojesz przeslonic metode ktorej nie ma >> (np. literowka w sygnaturze metody) wtedy sie adnotacja przydaje... >> >> Pozdrawiam >> Brzezi > > Będzie prostestował w mpmencie w którym nie przysłonię metody. To też > informacja... > > Pozdrawiam
No i właśnie o to chodziło, żeby kompilator sprawdził czy nie ma literówki, pomylownych parametrów itd, czyli czy naprawdę ta metoda jest przesłonietą. Jak to zawiedzie to pozostają jeszcza dwie możliwości: 1. metoda jest wołana na instancji obiektu A 2. metoda jest wołana z konstruktora A
-- Damian
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL] metody =?ISO-8859-2?Q?por=F3wnywania_znak=F3w_-_ja?==?ISO-8859-2?Q?kis_alter_=3A=29?=
Metody projektowania relacyjnych baz danych
Metody porownywania napisow MySQL
[PGSQL] dziedziczenie struktury tabeli
[postgres] Dziedziczenie tabel.
[MSSQL] Giną rekordy po padzie zasilania
Duza tabela czy wiele mniejszych?
[pytanie] mala litera - corel
Phostoshop - sciezki i nerwosol
font - brak ogonków w Corelu
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|