Inheritance
Method behavior
Parent class
public class Base
{
public Base()
{
System.out.println("Constructor from Base class ");
}
public void methodOne()
{
System.out.println("methodOne from Base class");
}
public void methodTwo()
{
System.out.println("methodTwo from Base class");
}
}
Child class
public class Derived extends Base
{
public Derived()
{
System.out.println("Constructor from Derived class " );
}
public void methodOne()
{
System.out.println("methodOne from Derived class");
}
public void methodThree()
{
System.out.println("methodThree from Derived class");
}
}
Driver/Test class
public class BaseDerivedTest
{
public static void main(String [] args)
{
Base b = new Derived();
b.methodOne();
b.methodTwo();
//b.methodThree(); ERROR
System.out.println("*** Derived ****");
Derived c = (Derived)b;
c.methodThree();
Derived d = new Derived();
d.methodOne();
d.methodTwo();
d.methodThree();
}
}
Include these three classes in your project. Run the driver.
Study the code and the output from the driver class. Use the output to make conclusions based on the following:
1. Do you see a pattern in the order in which the constructor and methods are called? Clearly explain
2. What criteria does the order depend on?
3. Explain how late binding, Polymorphism has a role in the behavior.
Note: Include the output in your submission.
In preparation for the test on Monday work on these assignments:
Self-Review 7.1 through 7.8
