Interface - Intro
todays lesson
interfaces (before and after java 9)
interface,implements
instanceofComparable and
compareToArrays.sort()Collections.sort()
interface (until java 7)
use keyword
implementsto implement the interfaceneed to implement all methods of the interface
you can't create an object of type interface (since its abstract)
a class can implement multiple interfaces or just a single interface
Interface methods are by default
abstractandpublicInterface attributes are by default
public,staticandfinalAn interface cannot contain a constructor (as it cannot be used to create objects)
What is the output?
public class Main {
public static void main(String[] args) {
MyClass obj = new MyClass();
int res = obj.first_method(10);
System.out.println(res);
obj.second_method();
}
} implemented first..
20
implemented second..another example
interface IFirst {
public int first_method(int num); // interface method
}
public class Main {
public static void main(String[] args) {
//IFirst first = new IFirst(); //doesn't compile, didn't implement method/s
//implemented the interface
//Anonymous inner class
IFirst first = new IFirst() {
@Override
public int first_method(int num) {
return num+20;
}
};
int res = first.first_method(10);
System.out.println(res);
}
} 30interfaces since java 9 more complicated 🙄
add the capabilities of the previous
access modifiers
before java 9:
publicbut notprivate,protectedsince java 9:
static methods
private methods
private static methods
private static void sub(int a, int b)default methods
and a few more changes
example
interface IFirst {
public default int first_method(int num){
System.out.println("implemented first..");
return add_15(num);
}
//can't use default with private
private int add_15(int num){
return num + 15;
}
}
interface ISecond {
void second_method(); // interface method
public static void second_method_static(int num) {
System.out.println(num + 20);
}
}
class MyClass implements IFirst, ISecond {
MyClass() {
System.out.println("created MyClass object...\n");
}
public void second_method() {
System.out.println("implemented second..");
}
}
public class MainClass {
public static void main(String[] args) {
MyClass obj = new MyClass();
System.out.println(obj.first_method(15));
obj.second_method();
ISecond.second_method_static(20);
//but no MyClass.second_method_static(20)
}
}created MyClass object...
implemented first..
30
implemented second..
40Arraylist example
class Main {
public static void main(String[] args) {
ArrayList<Animal> list = new ArrayList();
list.add(new Dog());
list.add(new Cat());
list.add(new Dog());
for (int i = 0; i < list.size(); i++) {
list.get(i).play();
list.get(i).swim();
System.out.println();
}
}
}Dog is playing
Dog is swimming
Cat is playing
Cat is swimming
Dog is playing
Dog is swimmingLast updated
Was this helpful?