Kalıtım konusu gerçekten önemli. Hemen örneğe geçelim
Örnek :
// upcasting
class Xmodel
{
public **** sesAc() {
System.out.println("X model televizyon sesAc()");
}
public **** sesKapa() {
System.out.println("X model televizyon sesKapa()");
}
public **** kanalDegistir() {
System.out.println("X model televizyon kanalDegistir()");
}
}
class Ymodel extends Xmodel
{
public **** sesAc() {
System.out.println("Y model televizyon sesAc()");
}
public **** sesKapa() {
System.out.println("Y model televizyon sesKapa()");
}
public **** kanalDegistir() {
System.out.println("Y model televizyon kanalDegistir() , ZapLama Yapabiliyoruz Ley Ley");
}
public **** teleText() {
System.out.println("Y model televizyon teleText()");
}
}
public class Televizyon
{
public static **** main(String args[]) {
Xmodel x_model_Kumanda = new Ymodel(); // Dogru , upcasting yapiyoruz
x_model_Kumanda.sesAc();
x_model_Kumanda.sesKapa();
x_model_Kumand****analDegistir();
// x_model_Kumanda.teleText() ; !! hata !! , bu kumandanin boyle bir dugmesi yok
}
}
Örnegin elimizde X model bir televizyon olsun.
Bu X model televizyonun özellikleri şunlar, sesacmak, seskapamak ve kanaldegistirmek, 3 adet özellik
fakat daha sonra bu X model televizyonun bir üst modelini geliştirmeye karar verdik. Bu modelede Y diyelim.
Y modelinde şu özellikleri koyduk, sesacmak, seskapamak , kanaldegistirmek , ve teletext ozelligi .
X modelinden farkli olarak teletext ozelligi ekledik ve kanaldegistirme olayini daha kolay bir hale getirdik diyelim.
Sonucda Y televizyonu X televizyonuna gore bir özellik fazla ve kanaldegistirmek özelliği ise daha geliştirilmiş.
Y model televizyon X model televizyondan turediğine göre ben bu Y model televizyonu X model televizyona ait bir uzaktan kumanda ile kumanda edebilirim .
Xmodel x_model_Kumanda = new Ymodel();
Şema ile gösterirsek :
Ama kumanda cihazım X model televizyon icin tasarlandığından Y model televizyonun teletext özelliğini kullanayacağım ve kanaldegistirirken biraz zorlanacağım(kanal degistirme kolayligi Y modelde geldi , unutmayalim) .
Örnek :
// upcasting
class Xmodel
{
public **** sesAc() {
System.out.println("X model televizyon sesAc()");
}
public **** sesKapa() {
System.out.println("X model televizyon sesKapa()");
}
public **** kanalDegistir() {
System.out.println("X model televizyon kanalDegistir()");
}
}
class Ymodel extends Xmodel
{
public **** sesAc() {
System.out.println("Y model televizyon sesAc()");
}
public **** sesKapa() {
System.out.println("Y model televizyon sesKapa()");
}
public **** kanalDegistir() {
System.out.println("Y model televizyon kanalDegistir() , ZapLama Yapabiliyoruz Ley Ley");
}
public **** teleText() {
System.out.println("Y model televizyon teleText()");
}
}
public class Televizyon
{
public static **** main(String args[]) {
Xmodel x_model_Kumanda = new Ymodel(); // Dogru , upcasting yapiyoruz
x_model_Kumanda.sesAc();
x_model_Kumanda.sesKapa();
x_model_Kumand****analDegistir();
// x_model_Kumanda.teleText() ; !! hata !! , bu kumandanin boyle bir dugmesi yok
}
}
Örnegin elimizde X model bir televizyon olsun.
Bu X model televizyonun özellikleri şunlar, sesacmak, seskapamak ve kanaldegistirmek, 3 adet özellik
fakat daha sonra bu X model televizyonun bir üst modelini geliştirmeye karar verdik. Bu modelede Y diyelim.
Y modelinde şu özellikleri koyduk, sesacmak, seskapamak , kanaldegistirmek , ve teletext ozelligi .
X modelinden farkli olarak teletext ozelligi ekledik ve kanaldegistirme olayini daha kolay bir hale getirdik diyelim.
Sonucda Y televizyonu X televizyonuna gore bir özellik fazla ve kanaldegistirmek özelliği ise daha geliştirilmiş.
Y model televizyon X model televizyondan turediğine göre ben bu Y model televizyonu X model televizyona ait bir uzaktan kumanda ile kumanda edebilirim .
Xmodel x_model_Kumanda = new Ymodel();
Şema ile gösterirsek :
Ama kumanda cihazım X model televizyon icin tasarlandığından Y model televizyonun teletext özelliğini kullanayacağım ve kanaldegistirirken biraz zorlanacağım(kanal degistirme kolayligi Y modelde geldi , unutmayalim) .