Bu, her iki interface
ve abstract function
oldukça benzer gibi geliyor bana
bazı yöntem uygulanması gerektiğini bir düzen gibi,
yani ne fark var?
Have a look at this. strong>
Quoting: (Çok İyi e-satis ile explantion)
Interface
Bir arabirim bir sözleşmedir: arabirimini yazılı adam "hey, ben bu şekilde seyir şeyleri kabul", ve arayüz söylemek kullanarak adam "Tamam, ben yazmak sınıfı bu şekilde görünüyor" söylüyorlar.
And interface is an empty shell, yöntemlerinden sadece imzaları (isim / params / dönüş tipi) vardır. Yöntem herhangi bir şey içermezler. Arayüz şey yapamaz. Bu sadece bir desen var.
Örneğin (sahte kod):
// I say all motor vehicles should look like that :
interface MotorVehicle
{
void run();
int getFuel();
}
// my team mate complies and write vehicle looking that way
class Car implements MotoVehicle
{
int fuel;
void run()
{
print("Wrroooooooom");
}
int getFuel()
{
return this.fuel;
}
}
Bu isimler sadece bir demet bir sınıf değil, ve bunun yapmak için pahalı arama yoktur çünkü bir arabirim uygulayan, çok az CPU tüketmek. Böyle gömülü cihazlar gibi konularda zaman harika.
Abstract classes
Soyut sınıflar, arayüzler aksine, sınıflardır. Eğer onlardan miras yapmak için bir arama olduğundan kullanmak daha pahalıdır vardır.
Soyut sınıflar arayüzleri çok benziyor, ama onlar daha çok şey var: onlar için bir davranışını tanımlayabilirsiniz. Bu söyleyerek bir adam hakkında daha fazla bulunuyor "bu sınıfların böyle bakmak gerekir, ve onlar ortak, böylece boşlukları doldurmak var ki!".
örn:
// I say all motor vehicles should look like that :
abstract class MotorVehicle
{
int fuel;
// they ALL have fuel, so why let others implement that ?
// 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 write vehicle looking that way
class Car extends MotorVehicule
{
void run()
{
print("Wrroooooooom");
}
}