Unit 9: Inheritance
Notes
- Inheritance is used to store attributes for subclasses, making abstraction easier and reducing risk of error
- Subclass constructor has to include "super" to access superclass parameters
- Use @Override to override a method
- One useful superclass is Object from java.lang
- Polymorphism is when a method is used for different tasks in different classes (different forms)
World Cup superclass
- Create a world cup superclass with properties of your choice and subclasses for five teams which inherits those properties
- Write a constructor for one of those subclasses
public class WorldCup {
public int wins;
public int losses;
public int games;
public WorldCup (int wins, int losses, int games) {
this.wins = wins;
this.losses = losses;
this.games = games;
}
public String toString () {
return "Wins = " + this.wins + ", Losses = " + this.losses + ", Games = " + this.games;
}
}
public class USA extends WorldCup {
public USA (int wins, int losses, int games) {
super (wins, losses, games);
}
}
public class Spain extends WorldCup {
public Spain (int wins, int losses, int games) {
super (wins, losses, games);
}
}
public class France extends WorldCup {
public France (int wins, int losses, int games) {
super (wins, losses, games);
}
}
public class Morocco extends WorldCup {
public Morocco (int wins, int losses, int games) {
super (wins, losses, games);
}
}
public class Argentina extends WorldCup {
public Argentina (int wins, int losses, int games) {
super (wins, losses, games);
}
}
public class Test {
public static void Main(String[] args) {
USA usa = new USA(3, 1, 4);
System.out.println("Team name: USA, " + usa);
Spain spain = new Spain(2, 2, 4);
System.out.println("Team name: Spain, " + spain);
France france = new France(4, 1, 5);
System.out.println("Team name: France, " + france);
Morocco morocco = new Morocco(4, 0, 6);
System.out.println("Team name: Morocco, " + morocco);
Argentina argentina = new Argentina(5, 1, 6);
System.out.println("Team name: Argentina, " + argentina);
}
}
Test.Main(null);
Teacher extended class
- Add a getAge method in the Person super class
- Create a new subclass Student with additional members of your choice to personalize the Student class
- Create a new subclass Teacher with additiona members of your choice
- Override the toString method using the @Override to print a Student and teacher object with new members
- Print the student and teacher
import java.util.Date;
public class Person {
private String name;
private String birthday;
public Person (String name, String birthday){
this.name = name;
this.birthday = birthday;
}
public int getAge() {
return (LocalDate.now());
}
public String getName(){
return name;
}
}
public class Student extends Person {
private int grade;
private double gpa;
public Student (String name, String birthday, int grade, double gpa) {
super(name, birthday);
this.grade = grade;
this.gpa = gpa;
}
public int getGrade(){
return grade;
}
}