SORU
16 Aralık 2009, ÇARŞAMBA


Arayüz ve soyut sınıf arasındaki fark nedir?

Tam olarak interface abstract class arasındaki fark nedir?

CEVAP
16 Aralık 2009, ÇARŞAMBA


Arayüzleri

Bir arabirimsözleşmeadam arabirimi yazma", diyorhey, işler bu şekilde bakmayı kabul ediyorum"ve adam kullanma arayüzü" diyorTamam, yazıyorum sınıfı bu şekilde görünüyor".

Bir arabirim boş bir kabuktursadece yöntemlerden bir vücuda sahip olmadığı anlamına gelir bu yöntem , imzası var. Arabirimi bir şey yapamaz. Sadece bir desen var.

E. G (sahte kod):

// I say all motor vehicles should look like this:
interface MotorVehicle
{
    void run();

    int getFuel();
}

// my team mate complies and writes vehicle looking that way
class Car implements MotorVehicle
{

    int fuel;

    void run()
    {
        print("Wrroooooooom");
    }


    int getFuel()
    {
        return this.fuel;
    }
}

Bir arabirimi uygulayan bir sınıf, bir grup isim değil çünkü çok az CPU tüketir, ve bu nedenle hiçbir pahalı bak-up var. Gömülü cihazlar gibi önemi büyük.


Soyut sınıflar

Soyut sınıflar, arayüzler farklı olarak sınıflar. Bir bak onlara miras ne zaman var, çünkü daha pahalıdır.

Sınıflar, arabirimler, çok benzer, ama bir şey daha var Özet : onlar için bir davranış tanımlayabilirsiniz. Bir adam diyor, "bu sınıflar, bu gibi görünmelidir, ve bir ortak noktamız var, boşlukları doldurun!".

e.g:

// I say all motor vehicles should look like this :
abstract class MotorVehicle
{

    int fuel;

    // they ALL have fuel, so why not let others implement this?
    // let's make it for everybody
    int getFuel()
    {
         return this.fuel;
    }

    // that can be very different, force them to provide their
    // implementation
    abstract void run();


}

// my team mate complies and writes vehicle looking that way
class Car extends MotorVehicle
{
    void run()
    {
        print("Wrroooooooom");
    }
}

Uygulama

Soyut sınıflar ve arayüzler farklı kavramlar olması gerekiyordu olsa da, bu uygulamalar bu ifadeyi bazen yanlış yapmak. Bazen, onlar ne düşündüğünü bile değiller.

Java, bu kuralı PHP, arayüzleri bir yöntem ilan ile soyut sınıflar ise güçlü, uygulanır.

Python, soyut sınıflar ABC modülünden alabilirsiniz daha fazla programlama kandırmak ve aslında metaclasses, ve bu nedenle sınıflar kullanıyor. Ve ARAYÜZLERİ bu dilde ördek yazarak daha ilgili ve tanımlayıcıları (__method__ yöntemleri) arama kuralları ve özel yöntemler arasında bir karışımı.

Programlama, teori, pratik ve başka bir dilde uygulama ile her zamanki gibi :-)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006
  • Kassem G

    Kassem G

    25 EKİM 2006
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005