interface ->multiderive

netrobot

Erfahrenes Mitglied
Code:
 interface iBase1
{
   final int i = 10;
}
interface iBase2
{
   final int i = 100;
}

class subclass implements iBase1, iBase2
{
    public int showValue ()
   {
      return i;
   }
}

public class app{
	public static void main(String [] args){
		subclass obj = new subclass();
		System.out.println("i = " + obj.showValue());	
	}
}
Error bei Kompilieren, es darf nicht 2 Variablen mit dem selben Namen geben.
Ich gehe davon aus, es ist auch bei Methoden der Fall.
d.h. Interface muss so implementiert werden, damit das mit anderen keinen Konflikt verursachen soll.
Ist damit der Kapselung zerstört?
 
Hallo!

in Interfaces darf man nur Fields deklarieren die entweder public / static oder final sind ... und dann solltest du sie beim Ansprechen voll qualifizieren. Konstanten ueber Interfaces in einer Klasse unterzubringen wuerde ich nicht empfehlen...
Ist damit der Kapselung zerstört?
Wenn man bloedsinn macht geht auch schon mal die Kapselung floeten ;)
Weiterhin nennt man Mehrfachvererbung nicht multiderive sondern multiple inheritance ...
was uebrigens in Java nicht moeglich ist...

Gruss Tom
 
Zurück