Java çalışırken beni zorlamış bir örnektir, hala tam izah etmekte zorlanırım. Java bilgisini ölçmek isteyen baksın, acele cevap yazmayın, boş cevaplara aldırış etmeyin. MyItem türü elemanlardan oluşan bir MyQ class ım var. İçinde head ve tail e işaret eden iki protected field var, add() ve remove() public metotları var. Başka bir pakette(!) UniqMyQ olarak bunu extend ediyorum, add() ve remove() override ediyorum ve bir de unique() diye metot ekliyorum. add() ve remove() inherit edilen protected field lara direkt erişebiliyor, unique() metotu UniqMyQ türü başka nesnelerin protected field'ına direkt erişebiliyor, tamam. Fakat MyQ türü nesnenin protected field ına erişemiyor. A UniqMyQ is-a MyQ relationship olmasına rağmen bu neden mümkün değildir?
package pk1;
public class MyQ { protected MyItem head; protected MyItem tail;
public void add(MyItem t) { } public MyItem remove() { return null; } }
package pk1;
public class MyItem { // TODO }
package pk2;
import pk1.*;
public class UniqMyQ extends MyQ { @Override public void add(MyItem t) { MyItem s = head; // TODO }
@Override public MyItem remove() { MyItem s = head; return null; // TODO }
public void uniq(UniqMyQ otherq) { MyItem s = otherq.head; // TODO }
/* UniqMyQ is-a MyQ olmasina ragmen bu neden hatali? public void uniq(MyQ otherq) { MyItem s = otherq.head; // TODO } */
}
< Bu ileti mini sürüm kullanılarak atıldı >
1. sayfa
Hizmet kalitesi için çerezleri kullanabiliriz, DH'yi kullanırken depoladığımız çerezlerle ilgili veri politikamıza gözatın.
MyItem türü elemanlardan oluşan bir MyQ class ım var. İçinde head ve tail e işaret eden iki protected field var, add() ve remove() public metotları var. Başka bir pakette(!) UniqMyQ olarak bunu extend ediyorum, add() ve remove() override ediyorum ve bir de unique() diye metot ekliyorum. add() ve remove() inherit edilen protected field lara direkt erişebiliyor, unique() metotu UniqMyQ türü başka nesnelerin protected field'ına direkt erişebiliyor, tamam. Fakat MyQ türü nesnenin protected field ına erişemiyor. A UniqMyQ is-a MyQ relationship olmasına rağmen bu neden mümkün değildir?
< Bu ileti mini sürüm kullanılarak atıldı >