Added/upgraded
default/static methods
What was the issue in java Interface in earlier version?
1 All abstract methods need to implement in implementation
class.
If we add any additional abstract method in existing
interface then need to implement in implementation classes, everywhere else compilation issue
3
All binary and dependency need to recompile and again build
for it
All issue
got resolved by adding the default/static methods in Interface
Will see
only by one examples.
Writing on basis of below software's
2. Eclipse
3. Windows OS
4. Basic knowledge of java
Verify the JDK installation
Open the command prompt and verify the java installation
Type the
C:\>javac -version
javac 1.8.0_74
C:\>java -version
java version "1.8.0_74"
Now java installation got verified, as installed JDK1.8.0_74
Verify the Eclipse installation
Go the the installation directory of eclipse and click on the eclipse.exe
Create the new java project in Eclipse
Open the eclipse
File
New
Java project
Type the project name: Interface_In_Java_Programming_JavaSE_8_JDK1.8
Next
Finish
Java project created in eclipse with directory structure:
Interface_In_Java_Programming_JavaSE_8_JDK1.8
- src
- JRE System Library
How to create Interface in eclipse?
Right click on the src folder under Interface_In_Java_Programming_JavaSE_8_JDK1.8project
New
Interface
Type the package name: com.atozexamples
Type the name: Calculator
Finish
Calculator.java
package com.atozexamples;
public interface Calculator {
}
Note: Above code are also called tag interface (also called a marker interface) in java, good examples is java.io.Serializable.
public interface Serializable {
}
Calculator interface with default and static method with declaration and implementation.
Calculator.java
SimpleCalculator class implements Calculator interface and override the display() and print() methods where as calls addition() default method and Calculator.sub() static method.
Calculator interface with default and static method with declaration and implementation.
Calculator.java
package
com.atozexamples.jdk8;
public interface Calculator {
// Abstract method,
This method need to
// implement in implementation calss
void display();
// Abstract method,
This method need
// to implement in implementation calss
void print();
/**
* Default method in interface with
implementation,
* not required to
* implement in implementation class
*/
default int addition(int a, int b) {
System.out.println("Calculator
interface Addition result " + a + b);
return a + b;
}
/**
* static method in interface with
implementation,
* not required to implement
* in implementation class
*/
static int sub(int a, int b) {
int c = a - b;
System.out.println("Calculator
interface sub result "
+ c);
return c;
}
}
SimpleCalculator.java
package
com.atozexamples.jdk8;
public class SimpleCalculator implements Calculator {
public SimpleCalculator() {
}
@Override
public void display() {
System.out.println("Displaying
the imp cls!");
}
@Override
public void print() {
System.out.println("Printing the
impl cls");
}
public static void main(String[] args) {
SimpleCalculator
obj = new SimpleCalculator();
// For calling the
default method
obj.addition(10, 20);
obj.display();
obj.print();
// Calling the
static method defined in interface by
// interface name
instead of object class
Calculator.sub(10,
20);
obj.display();
obj.print();
}
}
We can't call obj.sub(,) method wont be possible.
Video:
In English
In Hindi
Happy learning and implementation
5 Features + 4 Key Differences of Grafana and Prometheus | Monitoring Tools in DevOps https://youtu.be/sZx-Lowp3Hg
ReplyDelete