public class InterfaceTestThird {
public static void main (String [] args) {
PersonA p1 = new PersonA ();
PersonB p2 = new PersonB ();
p1.setName ("David", "Vajda");
p2.setName ("Anton", "Friedrich");
p1.print ();
p2.print ();
}
interface Person {
void setName (String FirstName, String LastName);
String toString ();
}
interface PrintPerson {
void print ();
}
interface RealPerson extends Person, PrintPerson {}
public static class PersonA implements RealPerson {
String FirstName = null;
String LastName = null;
@Override
public void setName (String FirstName, String LastName) {
this.FirstName = FirstName;
this.LastName = LastName;
}
@Override
public String toString () {
return this.FirstName + " " + this.LastName;
}
@Override
public void print () {
System.out.println (this.toString());
}
}
public static class PersonB implements RealPerson {
String Name = null;
@Override
public void setName (String FirstName, String LastName) {
this.Name = FirstName + " " + LastName;
}
@Override
public String toString () {
return this.Name;
}
@Override
public void print () {
System.out.println (this.toString());
}
}
}