class Person { public Person( String n, int a ) { if( a < 0 ) throw new IllegalArgumentException( ); name = n; age = a; } public String getName( ) { return name; } public int getAge( ) { return age; } public String toString( ) { return getName( ) + " " + getAge( ); } private String name; private int age; } class UniversityPerson extends Person { public UniversityPerson( String n, int a, String d ) { super( n, a ); dept = d; } public String getDept( ) { return dept; } public String toString( ) { return super.toString( ) + " " + getDept( ); } private String dept; } class Student extends UniversityPerson { public Student( String n, int a, String d, double g ) { super( n, a, d ); gpa = g; } public double getGPA( ) { return gpa; } public String toString( ) { return super.toString( ) + " " + getGPA( ); } private double gpa; } class Faculty extends UniversityPerson { public Faculty( String n, int a, String d, String r ) { super( n, a, d ); rank = r; } public String getName( ) { return rank + " " + super.getName( ); } public String getRank( ) { return rank; } public String toString( ) { return super.toString( ) + " " + getRank( ); } private String rank; } public class Day3 { // arr.length > 0 public static Person getYoungest( Person [ ] arr ) { int minIndex = 0; for( int i = 1; i < arr.length; i++ ) if( arr[ i ].getAge( ) < arr[ minIndex ].getAge( ) ) minIndex = i; return arr[ minIndex ]; } public static void main( String [ ] args ) { Person p1 = new Person( "Chris", 37 ); Person p2 = new Person( "Fran", 42 ); Student s1 = new Student( "Al", 29, "SCIS", 3.6 ); Student s2 = new Student( "JC", 26, "MIS", 3.9 ); Faculty f1 = new Faculty( "Yi", 40, "SCIS", "DEAN" ); Faculty f2 = new Faculty( "Ana", 42, "SCIS", "PROFESSOR" ); Person [ ] arr = new Person[ 6 ]; arr[ 0 ] = p1; arr[ 1 ] = p2; arr[ 2 ] = s1; arr[ 3 ] = f2; arr[ 4 ] = f1; arr[ 5 ] = s2; System.out.println( ((UniversityPerson)arr[ 4 ]).getDept( ) ); for( Person p : arr ) System.out.println( p ); System.out.println( "Youngest person is: " + getYoungest( arr ) ); } }