/media/sda-magnetic/david/Dokumente-15/fernuni-hagen/cs-i-ii/old-cs-2-03/java-new/2020-01-02/InterfaceTestSecond.java


public class InterfaceTestSecond {
    public static void main (String [] args) {
        Person p1 = new PersonA ();
        Person p2 = new PersonB ();
        PrintPerson prnt = new PrintPerson ();
        
        p1.setName ("David", "Vajda");
        p2.setName ("Anton", "Friedrich");
        
        prnt.print (p1);
        prnt.print (p2);
        
    }
    
    interface Person {
        void setName (String FirstName, String LastName);
        String toString ();
    }
    
    public static class PrintPerson {
        public static void print (Person p) {
            System.out.println (p.toString());
        }
    }
    
    public static class PersonA implements Person {
        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;
        }
    }
    
    public static class PersonB implements Person {
        String Name = null;
        
        @Override
        public void setName (String FirstName, String LastName) {
            this.Name = FirstName + " " + LastName;
        }
        
        @Override
        public String toString () {
            return this.Name;
        }
    }
    

}