sınıf ve arayüz

3 Cevap java

Ben 3 şey merak ediyorum.

1: Ben im bu yöntemi bildirirken bir üst sınıftaki (bir yöntem ile) bir arayüz hayata geçirdik, ve sonra başka bir sınıfta bu üst sınıfı genişletir edin. Sonra bu yöntem hakkına redeclare zorunda değilsiniz?

2: Ama ben üst sınıfında bu yöntemi beyan yok ama çocuk sınıfta sonra süper sınıfı örneğini eğer. O zaman ne olur? Bu örnekten herhangi bir yöntem içermiyordu.

3: Bir sınıfta uygulamak kullanmak ve o yöntemi bildirirken değil mi? Belki de, diğer sınıfları genişletmek için yalnızca bir üst olarak kullanılacaktır. Ve sonra sadece çocuk sınıflar bu yöntem bildirmek veya size arabirimini uygulayan geçerli sınıfta bildirmek zorunda mı?

3 Cevap

  1. Yerine "redeclare" nin "reimplement" anlamına varsayarsak, bu doğru.

  2. Sınıf soyut veya bildirilmiş olmasına bağlıdır. Üst sınıf soyut ise, çocuğun sınıf uygulamak için ya da soyut beyan edilmesi gerekiyor ya. Üst sınıf soyut değilse, o zaman derleme olmaz.

  3. Bunu uygulamak istemiyorsanız sınıf soyut beyan.

Daha bu konuda Sun tutorial about interfaces and inheritance.

Bu PHP ve Java hem etiketlenmiş - Java için cevap olacak.

  1. Doğru, üst sınıftan yönteminin uygulanmasını devralır.

  2. Üst sınıf hala arabirimini uygulayan olarak ilan edilirse o zaman bir derleme zamanı hatası neden olur, bu yüzden bu mümkün değildir.

  3. Daha önce de söylediğim gibi bir arabirim uygulamak Hayır, eğer o zaman bu arayüz beyan yöntemleri uygulamak veya miras gerekir. Sınıf abstract, sen (abstract örtülü olan) arabirim yöntemleri için bir uygulama sağlamak gerekmez, bu durumda ise tek istisna değildir. Soyut sınıflar örneği olamaz.

Sadece zaten (Java) 2. soru için cevap olmuştur ne ekleyerek:

Lütfen üst sınıf bir arayüzü uygulayan ve sonra soyut bir sınıf olarak, süper işaretlemek zorunda arabirimi yöntem (ler) uygulanmasını sağlamak olmadığını söylerse, (@ BalusC tarafından) diğer cevapta belirtildiği üzere. Ancak cannot instantiate bu soyut bir sınıf üst sınıf olduğu.