Download - Kurzus Java - Interfesz
-
Interfsz a Java nyelvben
Darvay Zsolt
-
Java 2
Mi is az interfsz (fellet)?
Az interfsz az osztlyhoz hasonlan egy tpust hatroz meg.
Abban klnbzik az osztlytl, hogy az sszes metdusa absztrakt, s az sszes mezje konstans.
Az interfsz nem tartalmaz megvalstst, de az osztlyok implementlhatjk a fellet metdusait.
-
Deklarci
InterfszMdostopc interface Azonost Tpusparamterekopc sopc InterfszTrzs
InterfszMdost: public (nyilvnos interfsz)
s: extends sinterfszek listja
-
Java 4
Plda
interface Jarmu {
void indul();
void megall();
void megy(int km);
void all(int perc);
};
-
Java 5
A Bicikli osztly
class Bicikli implements Jarmu {
public void indul()
{
System.out.println("Indul a bicikli.");
}
public void megall()
{
System.out.println("Megall a bicikli.");
}
-
Java 6
A Bicikli osztly
public void megy(int km) {
System.out.println("Biciklizik " + km +
" kilometert.");
}
public void all(int perc) {
System.out.println("A bicikli all " + perc +
" percet.");
}
}
-
Java 7
Az Auto osztly
class Auto implements Jarmu {
public void indul()
{
System.out.println("Indul az auto.");
}
public void megall()
{
System.out.println("Megall az auto.");
}
-
Java 8
Az Auto osztly
public void megy(int km) {
System.out.println("Az auto megy " + km + " kilometert.");
}
public void all(int perc) {
System.out.println("Az auto all " + perc +
" percet.");
}
}
-
Java 9
A bejar_ut metdus
class Utazas {
public static void bejar(Jarmu j)
{
j.indul();
j.megy(3);
j.all(1);
j.megy(2);
j.megall();
}
-
Java 10
A main metdus
public static void main(String[] args)
{
Jarmu b = new Bicikli();
bejar( b );
Jarmu a = new Auto();
bejar( a );
}
}
-
Java 11
Kimenet
Indul a bicikli.
Biciklizik 3 kilometert.
A bicikli all 1 percet.
Biciklizik 2 kilometert.
Megall a bicikli.
Indul az auto.
Az auto megy 3 kilometert.
Az auto all 1 percet.
Az auto megy 2 kilometert.
Megall az auto.
-
Java 12
Konstansok hasznlata
Az interfsz trzsben megadott vltozk public static final jellegek (a mdostkat nem kell megadni).
Ha egy osztly tbb interfszt valst meg, s azokban vannak azonos nev konstansok, akkor minstett neveket kell hasznlni (az interfsz nevt s a . opertort helyezzk el a meznv el).
Ha egy interfsz tbb gon rkli ugyanazt a mezt, akkor nem kell minstett nevet megadni.
-
Java 13
Plda: konstansok s szrmaztats
interface Elso {
int x = 10;
}
interface Masodik {
int x = 20;
}
-
Java 14
Szrmaztatott felletek
interface Alap {
int x = 50;
}
interface S1 extends Alap {
}
interface S2 extends Alap {
}
interface S1S2 extends S1, S2 {
}
-
Java 15
Az ElsoMasodik osztly
class ElsoMasodik implements Elso, Masodik {
public void kiir()
{
//System.out.println(x); // hiba
System.out.println(Elso.x);
System.out.println(Masodik.x);
}
}
-
Java 16
Az S1S2Oszt osztly
class S1S2Oszt implements S1S2 {
public void kiir()
{
System.out.println(x);
}
}
-
Java 17
A main metdus
public class InterfeszS {
public static void main(String[] args)
{
ElsoMasodik u = new ElsoMasodik();
u.kiir();
S1S2Oszt v = new S1S2Oszt();
v.kiir();
}
}
-
Java 18
Kimenet
10
20
50
-
Java 19
Interfsz s Object
Az interfsznek az Object nem se, de ennek ellenre nem adhatunk meg olyan metdust, amelynek a szignatrja (nv + formlis paramterek listja) azonos az Object osztly egyik metdusval, de a visszatrsi rtk klnbz.