What is the difference between Abstract Class and Interface?
Abstract classes usually represent an abstract concept or an entity with partial or no implementation. On the other hand, an interface is an abstract type that is used to specify a contract that should be implemented by classes. Abstract classes should be inherited (or extended), while interfaces should be implemented. Abstract classes may contain abstract methods, whereas an interface should only contain abstract methods. Abstract classes can contain any variables, but Interfaces can only define constants. A class cannot inherit from more than one abstract class but can implement multiple interfaces. An Interface cannot implement another interface. However an interface can extend a class.
// 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;
}
}
// 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"); } }
Comments
Post a Comment