University of Toronto - Fall 2000
Department of Computer Science

Week 11 - Inheritance

Inheritance

	class Person {
		private String name;
		private String birthdate;	// maybe Date would
									// be a better type?
		public Person (String name, String bdate) {
			this.name = name;
			this.birthdate = bdate;
		}
		public String getName() {
			return name;
		}
		public String getInfo() {
			String result = "Name: " + name;
			result += "\nBirthdate: " + birthdate;
			return result;
		}
	}

    import java.io.*;
	public class School {
		public static void main (String[] args) throws IOException {
        	BufferedReader in = new BufferedReader(new InputStreamReader
                        (System.in));
			int size = 10;
			Student[] list = new Student [size];
			for (int i=0; i < list.length; i++) {
				String name = in.readLine();
				String bdate = in.readLine();
				String stunum = in.readLine();
				list[i] = new Student (name, bdate, stunum);
			}
			for (int i=0; i < size; i++) {
				System.out.println (list[i].getInfo());
			}
		}
	}

	class Student extends Person {
		private String stunum;

		public Student (String n, String b, String s) {
			super (n, b);
			this.stunum = s;
		}

		public String getStunum() {
			return stunum;
		}

		// We want a more informative getInfo, so we
		// redefine it, or override it.
		public String getInfo() {
			String result = super.getInfo();
			result += "\nStudent number: " + stunum;
			return result;
		}
	}