// Demonstrate an inner class inside method. class MethodClass { public static void main(String args[]) { class MyClass //A class inside main() method { int x; MyClass(int x) //Constructor { this.x = x; } void display() //Method { System.out.print("Your value : "); System.out.println(x); } } MyClass m = new MyClass(63); m.display();
//Object //Method call
} } Program 2.16 Defining a class inside a method
// A simple example of inheritance. class Super { int i, j; void show() { System.out.print("i and j: "); System.out.println( + i + " " + j); } } class Sub extends Super { int k; void display() { System.out.println("k: " + k); } void sum() { System.out.println("i+j+k: " + (i+j+k)); } } class SimpleInheritance { public static void main(String args[]) { Super a = new Super();
Sub b = new Sub(); a.i = 5; a.j = 12; System.out.println("Contents of super: "); a.show(); System.out.println(); b.i = 11; b.j = 13; b.k = 17; System.out.println("Contents of sub: "); b.show(); b.display(); System.out.println(); System.out.println("Sum of i, j and k in sub:"); b.sum(); } } Program 2.17 Example of simple inheritance
// An example of Single inheritance import java.util.Scanner; class First { int val; void init() { System.out.print("Enter a number: "); Scanner in = new Scanner(System.in); val = in.nextInt(); } int square() { return(val*val); } } class Second extends First { int mem; int cube() { mem = square() * val; return mem; } } class SingleInheritance { public static void main(String args[]) { Second s = new Second(); s.init(); System.out.println("Cube : "+s.cube()); } }
Program 2.18 Example of single inheritance
// Super class variable to subclass object class Super { int i, j; void show() { System.out.print("i and j: "); System.out.println( + i + " " + j); } } class Sub extends Super { int k; void display() { System.out.println("k: " + k); } void sum() { System.out.println("i+j+k: " + (i+j+k)); } } class Reference { public static void main(String args[]) { Super a; //Statement1 Sub b = new Sub(); b.i = 11; b.j = 13; b.k = 17; System.out.println("Contents of sub: "); b.show(); b.display(); System.out.println(); a = b;
//Statement2
System.out.println("Contents of super: "); a.show(); System.out.println(); System.out.println("Sum of i, j and k in sub:"); b.sum(); } } Program 2.19 Super class variable can refer to the subclass object
The ‘super’ keyword
//Use of super to access super class members class Primary { int cal; //declaration1 void show() { System.out.println("Super class cal : "+cal); } } class Secondary extends Primary { int cal; //declaration2 Secondary(int x,int y) //statement1 { cal = x; //statement2 super.cal = y; //statement3 } void display() { System.out.println("Sub class cal : "+cal); } } class SuperUse1 { public static void main(String args[]) { Secondary s = new Secondary(15,22); s.show(); s.display(); } } Program 2.20 First use of the ‘super’ keyword
//Use of super to access super class constructor class Primary { int cal; //declaration1 Primary(int a) { cal = a; } void show() { System.out.println("Super class cal : "+cal); } } class Secondary extends Primary { int cal; //declaration2 Secondary(int x,int y) //statement1 { super(y); //statement2 cal = x; //statement3
} void display() { System.out.println("Sub class cal : "+cal); } } class SuperUse2 { public static void main(String args[]) { Secondary s = new Secondary(15,22); s.show(); s.display(); } } Program 2.21 Use of ‘super’ to access the super class constructor