Hlo 2
Hlo 2
=>These static concrete methods will get the memory within the interface
ii
while interface loading and can be accessed with Interface_name.
ath
Coding Rule:
aip
=>Static concrete methods of Interface are not available to implementation
=>From Java8 version omwards the interfaces canbe declared with default
concrete methods.
a
nk
Coding Rule:
name.
ProjectName : Interface_App4
packages,
p1 : ITest.java
package p1;
public interface ITest {
ii
public abstract void m1(int a);
public static void m2(int b) {
ath
System.out.println("****static m2(b)****");
System.out.println("The value b:"+b);
}
public default void m3(int c) {
aip
System.out.println("****default m3(c)****");
System.out.println("The value c:"+c);
}
hM
}
p1 : IClass.java
tes
package p1;
public class IClass implements ITest{
public void m1(int a) {
System.out.println("****Implemented m1(a)****");
a
}
}
Ve
p2 : DemoInterface4.java(MainClass)
package p2;
import p1.*;
public class DemoInterface4 {
public static void main(String[] args) {
ITest.m2(123);//Static method call
IClass ob = new IClass();//Implementation Object
ob.m1(124);//Implemented method call
//IClass.m2(125);//Static method Call
ob.m3(126);//default method call
}
}
o/p:
****static m2(b)****
ii
ath
The value b:123
****Implemented m1(a)****
****default m3(c)****
Note:
tes
applications.
------------------------------------------------------------------
ii
Coding Rule:
ath
=>private concrete methods are accessed only inside the interface,which
ProjectName : Interface_App5
aip
hM
packages,
p1 : ITest.java
package p1;
tes
m2(b)****");
nk
System.out.println("****NonStatic private
m3(c)****");
System.out.println("The value c:"+c);
}
public default void access(int b,int c) {
ITest.m2(b);
this.m3(c);
}
}
p1 : IClass.java
package p1;
public class IClass implements ITest{
public void m1(int a) {
System.out.println("****Implemented m1(a)****");
System.out.println("The value a:"+a);
}
ii
}
ath
p2 : DemoInterface5.java(MainClass)
package p2;
aip
import p1.*;
public class DemoInterface5 {
public static void main(String[] args) {
hM
IClass ob = new IClass();
ob.m1(11);
ob.access(13, 14);
}
}
tes
o/p:
a
****Implemented m1(a)****
nk
===================================================================
Rule-12 : Interfaces cannot be declared with Blocks and Constructors
Rule-13 : Interface can take the features from another interface using
"extends" keyword.
ii
Diagram:
ath
aip
hM
a tes
nk
ProjectName : Interface_App6
Ve
packages,
p1 : ITest1.java
package p1;
public interface ITest1 {
public abstract void m1(int a);
}
p1 : ITest2.java
package p1;
public interface ITest2 extends ITest1{
public abstract void m2(int b);
}
p1 : IClass.java
ii
package p1;
public class IClass implements ITest2{
ath
public void m1(int a) {
System.out.println("===m1(a)===");
System.out.println("The value a:"+a);
}
aip
public void m2(int b) {
System.out.println("===m2(b)===");
System.out.println("The value b:"+b);
hM
}
}
p2 : DemoInterface6.java(MainClass)
tes
package p2;
import p1.*;
public class DemoInterface6 {
a
}
}
o/p:
===m1(a)===
The value a:11
===m2(b)===
=================================================================
*imp
ii
Abstract Classes in Java:
ath
=>The classes which are declared with "abstract" keywork are known as
"abstract classes"
aip
=>Abstract Classes are collection of Variables,concrete methods,abstract
keyword.
=>These extention classes must construct body for all abstract methods
Ve
of abstract classes.
Diagram:
ii
ath
aip
===================================================================
====
hM
a tes
nk
Ve