137 lines
2.9 KiB
Plaintext
137 lines
2.9 KiB
Plaintext
|
Application
|
|||
|
Programming
|
|||
|
Hend Alkittawi
|
|||
|
|
|||
|
OOP Concepts
|
|||
|
Introduction to Java Interfaces
|
|||
|
|
|||
|
INTERFACES
|
|||
|
-
|
|||
|
|
|||
|
Java interfaces are particularly useful for assigning common
|
|||
|
functionality to possibly unrelated classes
|
|||
|
|
|||
|
-
|
|||
|
|
|||
|
Java interfaces offer a capability requiring that unrelated classes
|
|||
|
implement a set of common methods
|
|||
|
|
|||
|
-
|
|||
|
|
|||
|
A Java interface describes a set of methods that can be called on an
|
|||
|
object to tell it to perform some tasks or return some piece of
|
|||
|
information
|
|||
|
|
|||
|
-
|
|||
|
|
|||
|
An interface should be used in place of an abstract class when there is
|
|||
|
no default implementation to inherit, that is, no fields and no
|
|||
|
concrete methods implementations
|
|||
|
-
|
|||
|
|
|||
|
this allows objects of unrelated classes to be processed polymorphically
|
|||
|
|
|||
|
INTERFACES
|
|||
|
-
|
|||
|
|
|||
|
An interface declaration begins with the keywords interface
|
|||
|
and contains only constants and abstract methods
|
|||
|
-
|
|||
|
|
|||
|
all methods declared in an interface are implicitly public
|
|||
|
abstract methods
|
|||
|
|
|||
|
-
|
|||
|
|
|||
|
all fields are implicitly public, static, and final
|
|||
|
public interface InterfaceName {
|
|||
|
public static final dataType varName;
|
|||
|
public abstract returnType interfaceMethod();
|
|||
|
}
|
|||
|
|
|||
|
INTERFACES
|
|||
|
-
|
|||
|
|
|||
|
To use an interface, a concrete class must specify that it
|
|||
|
implements the interface and must declare each method in the
|
|||
|
interface with the signature specified in the interface
|
|||
|
declaration
|
|||
|
|
|||
|
-
|
|||
|
|
|||
|
Java does not allow subclasses to inherit from more than one
|
|||
|
superclass, but it allows a class to inherit from one
|
|||
|
superclass and implement as many interfaces as it needs
|
|||
|
public class ClassName implements InterfaceName
|
|||
|
or
|
|||
|
public class ClassName extends SuperClass implements InterfaceName
|
|||
|
where InterfaceName maybe a comma-separated list of interface names
|
|||
|
|
|||
|
public interface Drawable {
|
|||
|
public void draw();
|
|||
|
}
|
|||
|
|
|||
|
public class InterfaceDemo {
|
|||
|
public static void main(String[] args) {
|
|||
|
// Creating objects of different
|
|||
|
// classes that implement Drawable
|
|||
|
Drawable rectangle = new Rectangle(2.5, 7.2);
|
|||
|
Drawable tree = new Tree("Oak", 5.5);
|
|||
|
Drawable person = new Person("John", 30);
|
|||
|
|
|||
|
public class Tree implements Drawable {
|
|||
|
private String type;
|
|||
|
private double height;
|
|||
|
public Tree(String type, double height) {
|
|||
|
this.type = type;
|
|||
|
this.height = height; }
|
|||
|
|
|||
|
// Array of Drawable objects
|
|||
|
Drawable[] drawables = {rectangle, tree, person};
|
|||
|
|
|||
|
// getters and setters are omitted
|
|||
|
|
|||
|
// Drawing all drawable objects
|
|||
|
for (Drawable drawable : drawables) {
|
|||
|
drawable.draw();
|
|||
|
}
|
|||
|
|
|||
|
@Override
|
|||
|
public void draw() {
|
|||
|
System.out.println("Drawing a tree with height " + getHeight() + " meters"); }
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public class Rectangle implements Drawable{
|
|||
|
private double length;
|
|||
|
private double width;
|
|||
|
public Rectangle(double length, double width) {
|
|||
|
this.length = length;
|
|||
|
this.width = width; }
|
|||
|
// getters and setters are omitted
|
|||
|
public void draw() {
|
|||
|
System.out.println("Drawing a rectangle with length " + length + " and width " + width); }
|
|||
|
}
|
|||
|
|
|||
|
CODE DEMO
|
|||
|
-
|
|||
|
|
|||
|
Create classes to demo
|
|||
|
interfaces concepts!
|
|||
|
|
|||
|
DO YOU HAVE ANY
|
|||
|
QUESTIONS?
|
|||
|
|
|||
|
THANK
|
|||
|
YOU!
|
|||
|
|
|||
|
@
|
|||
|
|
|||
|
hend.alkittawi@utsa.edu
|
|||
|
|
|||
|
By Appointment
|
|||
|
Online
|
|||
|
|
|||
|
|