Expected Understanding: Abstraction, Inheritance, Dynamic Binding, Polymorphism (Overriding), Constructor Overloading
1) Create an abstract class called ‘India’
– Have below abstract methods
– void speakLanguage()
– void eat()
– void dress()
– Have static variable String capital = “New Delhi”
– Have below Constructor
public India(String primeMinister)
{
System.out.println(“our Prime Minister is” + primeMinister);
}
public abstract class India
{
String PrimeMinister;
static String capital="New Delhi";
public India(String PrimeMinister)
{
this.PrimeMinister=PrimeMinister;
System.out.println("our Prime Minister is " + this.PrimeMinister);
}
public abstract void speakLanguage();
public abstract void eat();
public abstract void dress();
}
2) Create an abstract class called ‘SouthIndia’
– Make this class as sub class of ‘India’
– Add below non abstract methods
– void cultivate()
– Print ‘Rice and Wheat cultivation’ inside this method
– void livingStyle()
– Print ‘Average development’ inside this method
public abstract class SouthIndia extends India
{
public SouthIndia(String PrimeMinister)
{
super(PrimeMinister);
}
public void cultivate()
{
System.out.println("Rice and Wheat cultivation");
}
public void livingStyle()
{
System.out.println("Average development");
}
}
3) Create a class called ‘TamilNadu’ with main method as sub class of ‘South India’.
– Add unimplemented methods
– Provide your own definitions wherever necessary.
– Have static variable String capital = “Chennai”
– Add below non abstract methods
– void cultivate()
– Print ‘Rice and Sugar cane cultivation’ inside this method
– void livingStyle()
– Print ‘Above Average development’ inside this method
– Using class name “India” – access variable ‘capital’ and print the value
– Using class name “TamilNadu” – access variable ‘capital’ and print the value.
– Create instance for “SouthIndia” as below
SouthIndia si = new TamilNadu()
– Observe which methods and variables can be accessed using ‘si’ and note down.
public class TamilNadu extends SouthIndia
{
static String capital="Chennai";
public TamilNadu(String PrimeMinister)
{
super(PrimeMinister);
}
public static void main(String[] args)
{
System.out.println(India.capital);
System.out.println(TamilNadu.capital);
SouthIndia si = new TamilNadu("modi");
}
public void speakLanguage()
{
System.out.println("Speaking Tamil Language");
}
public void eat()
{
System.out.println("Tamil Food");
}
public void dress()
{
System.out.println("Tamil Dressing");
}
public void cultivate()
{
System.out.println("Rice and Sugar cane cultivation");
}
public void livingStyle()
{
System.out.println("Above Average development");
}
}
Output
