Po pierwsze gratulacje dla Kazika Pogody za współzwyciężenie w Eclipse Ganymede Around the World Contest, a dokładniej za popełnienie posta o tym IDE! Najpierw Jacek, teraz Kazik... Coś jest dobrego w polish developers :-)
Po drugie zapraszam do przejrzenia poniższego kodu. Natrafiłem na tego typu problem podczas czytania książki do SCJP 6. Dla mnie to było coś nowego....
Nadpisywanie a przeciążanie metod ;-)
Jaki będzie wynik poniższego kodu?
public class Car {
public void roof(String color) {
System.out.println("Roof is " + color);
}
}
public class Wolga extends Car {
public void roof(String color) {
System.out.println("Wolga's roof is " + color);
}
public static void main(String[] args) {
Car car = new Car();
Wolga wolga = new Wolga();
Car carRefToWolga = new Wolga();
car.roof("blue");
wolga.roof("red");
carRefToWolga.roof("yellow");
}
Wynik.........
NAJPIERW POMYŚL....
Roof is blue
Wolga's roof is red
Wolga's roof is yellow
Pierwsze dwa wiadomo, trzeci wynik jest taki ponieważ obiekt carRefToWolga jest "wywoływany" przez JVM w 'runtime' na podstawie typu obiektu.
Kolejny przykład...
public class Fish { }
public class Shark extends Fish { }
public class TestFishes {
public void swim(Fish fish) {
System.out.println("Fishes like swimming");
}
public void swim(Shark shark) {
System.out.println("Sharks like swimming too");
}
public static void main(String[] args) {
TestFishes testFishes = new TestFishes();
Fish fishObject = new Fish();
Shark sharkObject = new Shark();
Fish fishRefToShark = new Shark();
testFishes.swim(fishObject);
testFishes.swim(sharkObject);
testFishes.swim(fishRefToShark);
}
}
Wynik......
NAJPIERW POMYŚL....
Fishes like swimming
Sharks like swimming too
Fishes like swimming
Pierwsze dwa wiadomo, trzeci wynik jest taki ponieważ przy przeciążaniu metod w trakcie wywoływania obiektu fishRefToShark maszyna wirtualna Javy odwoła się do typu referencji ;-)
Mam nadzieję, że Paweł Szulc nie będzie zły za bezczelnie skopiowanie tytułu posta :-). Jeśli chcecie poczytać więcej ciekawego kodu, zapraszam do niego.








0 komentarze:
Prześlij komentarz