Inheritance

Back Up Next

 

Inheritance
Single inheritance
Implicit inheritance from class Object
AmericanCitizen.java
public class AmericanCitizen extends Person implements American, Citizen {
	private Visa myVisa;
	private int mySSN;
	
	public AmericanCitizen(boolean gender, String name, int SSN) {
		super(gender, name);
		mySSN = SSN;
	}
	
	public Visa getVisa()	{	return myVisa;	}
	public int getSSN()		{	return mySSN;	}
	public void setVisa(Visa visa) {	myVisa = visa;	}
	
	public String say(String statement) {
		String said = this.getBirthname() + ": " + statement;
		System.out.print(said);

		return said;
	}
	
	public static void main(String[] args) {
		AmericanCitizen me = new AmericanCitizen(Person.MALE, "David", 123456789);
		AmericanCitizen you = new AmericanCitizen(Person.FEMALE, "Jane", 987654321);
		Inspector police = new Inspector();
		
		me.setVisa(new Visa(me, 5));
		you.setVisa(new Visa(you, 5));
		
		me.say("hello\n");
		me.say("My SSN is: " + me.getSSN() + "\n");
		me.setVisa(you.getVisa());
		
		police.checkVisa(me);
	}
}
Inspector.java
public class Inspector extends AmericanCitizen {
	public Inspector() {
		super(Person.MALE, "Inspector", 0);
	}
	
	public boolean checkVisa(Citizen citizen) {
		if (!citizen.getVisa().validate(citizen)) {
			say("Fake Visa!\n");
			return false;
		}
		
		return true;
	}
}