/media/sda-magnetic/david/Dok-15-2023-11-27/fernuni-hagen/cs-i-ii/old-cs-2-03/java-new/2020-01-02/InterfaceTestThird.java


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());
        }

    }
    

}