2013-05-31 23 views
6

uygulamadan bile derleme ve ben soyut bir sınıfprogramım bir arayüz <code>abc</code></p> <pre><code>public interface abc { void start(); } </code></pre> <p>adında var arayüzünü

public abstract class def extends Thread implements abc 
{ 
} 

def adında var ghj

public class ghj extends def 
{ 
    //it is defing all the methods of its above abstract class 
    //now it does not implement the method define in interface start(); 
} 

ghj sınıfı, abc arayüzünü uygulamıyorsa, lütfen programın nasıl derleme yapılacağını bildiriniz.

cevap

14

doğrudan Thread uzatarak, start() tanımlayan olmamakla birlikte, start() bir uygulama bu nedenle abc arayüzünün sözleşme yerine getirerek, def ve alt sınıfları için sağlanmaktadır.

+1

+1 Her iki tanım aynı olduğu için :) –

+0

evet ve dönüş türünü değiştirirsek ancak yine de iş parçacığı uzatırsak, derleme zamanı hatası olur. – anshulkatta

+1

@anshulkatta "start()" işlevinin dönüş türünü değiştirirseniz Arabirim, kod (arabirim tarafından verilen) yöntem sözleşmesi ve sağlanan yöntem (iş parçacığı içinde tanımlanan) arasında uyumsuz dönüş türleri nedeniyle derlenmez. – Vulcan

2

Tam sınıfınız, tam olarak aynı imzası olan Thread sınıfından start() yöntemini devralıyor. Bu yüzden derleyici herhangi bir hata oluşturmuyor.

+0

hellooww !! bu başlangıç ​​() -_- – anshulkatta

+0

@anshulkatta evet ... cevabımı düzenledim –

İlgili konular