பொதுவாக ஜாவா இன்டெர்ஃபேஸ்களில் மெத்தட்
அறிவிப்பு மட்டுமே இருக்கும். அதன் நடைமுறைப்படுத்துதல் அந்த இன்டெர்ஃபேஸை
இம்பிலிமெண்ட் செய்யும் கிளாஸ்களில் தான் இருக்கும். மேலும் ஒரு இன்டெர்ஃபேஸில் அறிவிக்கப்படும்
எல்லா மெத்தட்களின் நடைமுறைப்படுத்தலும் அதை இம்பிலிமெண்ட் செய்யும் கிளாஸில்
இருக்க வேண்டும்.எனவே ஒரு புதிய மெத்தட் இன்டெர்ஃபேஸில் அறிவிக்கப்பட்டால் அதன்
நடைமுறைப்படுத்துதல் இம்பிலிமெண்டேசன் கிளாஸில் சேர்க்க வேண்டும்.அதை தவிர்க்கவே
டிஃபால்ட் மெத்தட்கள் பயன்படுகின்றது. அதாவது ஒரு இண்டெர்ஃபேஸில் ஒரு மெத்தடின்
நடைமுறையுடன் இருக்கலாம். அந்த மெத்தடை default என்கின்ற கீவர்டுடன் சேர்த்து
இருக்க வேண்டும்.இது ஜாவா 8-ல் இருந்தே புதியதாக அறிமுகப்படுத்தப்பட்டுள்ளது.
// A simple program
to Test Interface default
// methods in java
interface TestInterface
{
//
abstract method
public void square(int a);
//
default method
default void show()
{
System.out.println("Default
Method Executed");
}
}
class TestClass
implements TestInterface
{
//
implementation of square abstract method
public void square(int a)
{
System.out.println(a*a);
}
public static void main(String
args[])
{
TestClass
d = new TestClass();
d.square(4);
//
default method executed
d.show();
}
}
|
வெளியீடு:
16
Default Method Executed
டிஃபால்ட் மெத்தட்கள் backward compatibility என்பதை
தருகின்றது. இதை defender methods அல்லது virtual extension methods என்றும்
அழைக்கப்படுகின்றன.
Static Methods:
இன்டெர்ஃபேஸில் கிளாஸைப் போலவே
ஸ்டேட்டிக் கிளாஸ்களும் இருக்கலாம்.
// A simple Java
program to TestClassnstrate static
// methods in java
interface TestInterface
{
//
abstract method
public void square
(int a);
//
static method
static void show()
{
System.out.println("Static
Method Executed");
}
}
class TestClass
implements TestInterface
{
//
Implementation of square abstract method
public void square
(int a)
{
System.out.println(a*a);
}
public static void main(String
args[])
{
TestClass
d = new TestClass();
d.square(4);
//
Static method executed
TestInterface.show();
}
}
|
வெளியீடு:
16
Static Method Executed
Default Methods மற்றும்Multiple
Inheritance
ஒரு கிளாஸ் ஆனது ஒன்றுக்கும் மேற்பட்டா இன்டெர்ஃபேஸ்களை இம்ப்லிமென்ட் செய்யலாம். அப்பொழுது ஒரே சிக்னேச்சருடன் இரண்டு இன்டெர்ஃபேசிலும் மெத்தட் இருந்தால் அதை இம்ப்லிமெண்ட் செய்யும் கிளாஸில் இன்டெஃபேஸ்களின் பெயர் explicit ஆக கூறப் பட வேண்டும்.
ஒரு கிளாஸ் ஆனது ஒன்றுக்கும் மேற்பட்டா இன்டெர்ஃபேஸ்களை இம்ப்லிமென்ட் செய்யலாம். அப்பொழுது ஒரே சிக்னேச்சருடன் இரண்டு இன்டெர்ஃபேசிலும் மெத்தட் இருந்தால் அதை இம்ப்லிமெண்ட் செய்யும் கிளாஸில் இன்டெஃபேஸ்களின் பெயர் explicit ஆக கூறப் பட வேண்டும்.
// A simple Java
program to demonstrate multiple
// inheritance
through default methods.
interface TestInterface1
{
//
default method
default void show()
{
System.out.println("Default
TestInterface1");
}
}
interface TestInterface2
{
//
Default method
default void show()
{
System.out.println("Default
TestInterface2");
}
}
// Implementation
class code
class TestClass
implements TestInterface1, TestInterface2
{
//
Overriding default show method
public void show()
{
//
use super keyword to call the show
//
method of TestInterface1 interface
TestInterface1.super.show();
//
use super keyword to call the show
//
method of TestInterface2 interface
TestInterface2.super.show();
}
public static void main(String
args[])
{
TestClass
d = new TestClass();
d.show();
}
}
|
Output:
Default
TestInterface1
Default
TestInterface2
முக்கிய குறிப்புகள்
- இன்டெர்ஃபேஸில் ஜாவா வெர்சன் 8-ல் இருந்து டிஃபால்ட் மெத்தட்கள் இருக்கலாம்.
- இன்டெர்ஃபேஸில் கிளாசைப் போலவே ஸ்டேட்டிக் மெத்தகள் இருக்கலாம்.
- டிஃபால்ட் மெத்தட்கள் backward compatibility தரவே பயன்படுத்தப் ;படுகின்றன.
-முத்து
கார்த்திகேயன், மதுரை.
No comments:
Post a Comment