top of page

Java Interfaces

Interfaces in Java are used to achieve Polymorphism. A Java application consists of interacting objects. An object interacts with other objects by sending messages. The ability of an object to receive messages is implemented by providing methods in the object’s class. An interface declaration starts with list of modifiers, which may be empty. Like a class, an interface can have a public or package-level scope. The keyword public is used to indicate that the interface has a public scope.


The general (incomplete) syntax for declaring an interface is

<modifiers> interface <interface-name> {

Constant-Declaration

Method-Declaration

Nested-Type-Declaration

}

Declaring Interface Members

An interface can have three types of members:

  • Constant fields

  • Abstract, static, and default methods

  • Static types (nested interfaces and classes)

Example:

RaceCar.java

package cars.models; public interface RaceCar { String carCompanyAndModel(); String Chassis(); String Engine(); String Transmission(); String Suspension(); String Brakes(); String BodyWork(); String Wheels(); String Dimensions(); }

Bentley.java

package cars.models; public class Bentley implements RaceCar { @Override public String carCompanyAndModel() { return "Bentle" + " " + "Continental GT Speed Convertible"; } @Override public String Chassis() { return "Box tubular space frame construction with integral safety cage" + "\n" + "Anti-intrusion side structures stressed aluminium alloy panels" + "\n" + "Rack-and-pinion steering"; } @Override public String Engine() { return "4.0-litre twin-turbo V8, repositioned to the rear of the engine bay, Motorsport engine management system"; } @Override public String Transmission() { return "Rear wheel drive, Xtrac six-speed sequential transaxle gearbox," + "racing clutch, steering wheel mounted paddle operated pneumatic gear shift"; } @Override public String Suspension() { // TODO Auto-generated method stub return null; } @Override public String Brakes() { // TODO Auto-generated method stub return null; } @Override public String BodyWork() { // TODO Auto-generated method stub return null; } @Override public String Wheels() { // TODO Auto-generated method stub return null; } @Override public String Dimensions() { // TODO Auto-generated method stub return null; } }

Ferrari.java

package cars.models; public class Ferrari implements RaceCar { @Override public String carCompanyAndModel() { return "Ferrari" + " " + "Ferrari FF"; } @Override public String Chassis() { return "Box tubular space frame construction with integral safety cage" + "\n" + "Anti-intrusion side structures stressed aluminium alloy panels" + "\n" + "Rack-and-pinion steering"; } @Override public String Engine() { return "4.0-litre twin-turbo V8, repositioned to the rear of the engine bay, Motorsport engine management system"; } @Override public String Transmission() { return "Rear wheel drive, Xtrac six-speed sequential transaxle gearbox," + "racing clutch, steering wheel mounted paddle operated pneumatic gear shift"; } @Override public String Suspension() { // TODO Auto-generated method stub return null; } @Override public String Brakes() { // TODO Auto-generated method stub return null; } @Override public String BodyWork() { // TODO Auto-generated method stub return null; } @Override public String Wheels() { // TODO Auto-generated method stub return null; } @Override public String Dimensions() { // TODO Auto-generated method stub return null; } }

Mustang.java

package cars.models; public class Mustang implements RaceCar { @Override public String carCompanyAndModel() { return "Mustang" + " " + "Ford Mustang Shelby GT350"; } @Override public String Chassis() { return "Box tubular space frame construction with integral safety cage" + "\n" + "Anti-intrusion side structures stressed aluminium alloy panels" + "\n" + "Rack-and-pinion steering"; } @Override public String Engine() { return "4.0-litre twin-turbo V8, repositioned to the rear of the engine bay, Motorsport engine management system"; } @Override public String Transmission() { return "Rear wheel drive, Xtrac six-speed sequential transaxle gearbox," + "racing clutch, steering wheel mounted paddle operated pneumatic gear shift"; } @Override public String Suspension() { // TODO Auto-generated method stub return null; } @Override public String Brakes() { // TODO Auto-generated method stub return null; } @Override public String BodyWork() { // TODO Auto-generated method stub return null; } @Override public String Wheels() { // TODO Auto-generated method stub return null; } @Override public String Dimensions() { // TODO Auto-generated method stub return null; } }

RaceCars.java

package cars.models; public class RaceCars { static void getRaceCarsProperties(RaceCar raceCar) { String carModel= raceCar.carCompanyAndModel(); System.out.println(carModel); System.out.println(); String chassis = raceCar.Chassis(); System.out.println(chassis); String engine = raceCar.Engine(); System.out.println(engine); String transmission = raceCar.Transmission(); System.out.println(transmission); System.out.println(); } static void getAllRaceCars( RaceCar[] cars) { for(int i = 0; i < cars.length; i++) getRaceCarsProperties( cars [i] ); } public static void main(String[] args) { RaceCar[] cars = { new Bentley(), new Ferrari(), new Mustang() }; getAllRaceCars(cars); } }

Featured Posts
Check back soon
Once posts are published, you’ll see them here.
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
Recent Posts
Archive
Search By Tags
No tags yet.
bottom of page