Public Abstract Class Public Void : //default Implementation
Public Abstract Class Public Void : //default Implementation
//default implementation
void buildWindows() {
System.out.println("Building Glass Windows");
}
@Override
public void buildWalls() {
System.out.println("Building Wooden Walls");
}
@Override
public void buildPillars() {
System.out.println("Building Pillars with Wood coating");
}
Exercise 2:
}
//template method
public final void play(){
//start game
startPlay();
//end game
endPlay();
}
}
@Override
void endPlay() {
System.out.println("Cricket Game Finished!");
}
@Override
void startPlay() {
System.out.println("Cricket Game Started. Enjoy the game!");
}
}
Exercise 3:
//Template method
//This method defines a generic structure for parsing data
public void parseDataAndGenerateOutput()
{
readData();
processData();
writeData();
}
//This methods will be implemented by its subclass
abstract void readData();
abstract void processData();
//We have to write output in a CSV file so this step will be same for all
subclasses
public void writeData()
{
System.out.println('Output generated,writing to CSV');
}
}
public class CSVDataParser extends DataParser {
void readData() {
System.out.println('Reading data from csv file');
}
void processData() {
System.out.println('Looping through loaded csv file');
}
}
void readData() {
System.out.println('Reading data from database');
}
void processData() {
System.out.println('Looping through datasets');
}
}