package lectures.inheritance;
import util.annotations.WebDocuments;
import lectures.graphics.Point;
import lectures.interfaces.BMISpreadsheet;
@WebDocuments({"Lectures/Inheritance.pptx", "Lectures/Inheritance.pdf", "Videos/Inheritance.avi"})
public class InheritanceTypeCheckingExamples {
public void assigningToAMoreSpecificType() {
}
public void assigningToAMoreGeneralType() {
BaseStringHistory stringHistory = new AnInheritingStringDatabase();
stringHistory.size();
((InheritingStringDatabase) stringHistory) .clear();
if (stringHistory instanceof InheritingStringDatabase) {
((InheritingStringDatabase) stringHistory) .clear();
} else {
System.out.println("Got unlucky");
}
}
public void incorrectCompileTimeAndRunTimeCasts() {
InheritingStringDatabase database= (InheritingStringDatabase) new ABaseStringHistory();
Point point = (Point) (new ABaseStringHistory()); BaseStringHistory stringHistory = new AStringHistoryAndPoint();
point = (Point) stringHistory;
}
public void legalAndIllegalArrayExamples() {
Object[] objects = { "Joe Doe", new AnInheritingStringDatabase(), new ABaseStringHistory()};
InheritingStringDatabase[] database= {(InheritingStringDatabase) new ABaseStringHistory()};
}
public void specialObjectRules() {
BaseStringHistory stringHistory = new AnInheritingStringDatabase();
Object o = stringHistory;
System.out.println(stringHistory);
}
public void primitiveExamples() {
int i = (int) 2.5;
double d = 2;
i = (int) d;;
}
public void printPointOrBMIProperties(Object pointOrBMI) {
if (pointOrBMI instanceof Point) {
Point point = (Point) pointOrBMI;
System.out.println(point.getX());
} else if (pointOrBMI instanceof BMISpreadsheet) {
BMISpreadsheet bmiSpreadsheet = (BMISpreadsheet) pointOrBMI;
System.out.println(bmiSpreadsheet.getBMI());
}
}
}