Skip to main content

Inheritance-2

Limitation of Inheritance:-we know that inheritance is a facility of re-using the previously developed code, but inheritance has some limitation also, that are given below.

1)    Limitation on variables

 private variables are not available to the child class in any ways that means     private variables cannot inherit .

2)    Limitation on functions or methods

Private Fields of super classes are not available to the child class.
3)    Limitation on class

Final classes cannot inherit into child class.

4)    Limitation on Constructor

Inheritance concept is not applicable for constructors, constructors are not inherited.


Example1:-private variables-1


class Account
{
private int balance=100;
 }
class Test extends Account
{
void getBalance()
{
System.out.println("Your balance is"+balance);
}
public static void main(String[]args)
{
Test t=new Test();
t.getBalance();
}
}

Output:-

C:\JAVATECH>javac Test.java

Test.java:13: error: balance has private access in Account
System.out.println("Your balance is"+balance);
                                     ^
1 error


Private variables cannot inherit in child class, but private variables are used by the methods of that class and method can be inherited into child class.


Example2:- private variables-2


class Account
{
private int balance=100;
 void balance()
{
System.out.println("Your balance is"+balance);
}
}
class Test extends Account
{
public static void main(String[]args)
{
Test t=new Test();
t.balance();
}
}

Output:-

C:\JAVATECH>javac Test.java
 C:\JAVATECH>java Test

Your balance is100


Example3:-private function-1


class Account
{
private void balance()
{
System.out.println("Your balance ");
}
}
class Test extends Account
{
public static void main(String[]args)
{
Test t=new Test();
t.balance();
}
}

Output:-

C:\JAVATECH>javac Test.java

Test.java:15: error: cannot find symbol
t.balance();
 ^
  symbol:   method balance()
  location: variable t of type Test
1 error

Example4:-private function-2


class Account
{
private void balance()
{
System.out.println("Your balance ");
}
void disp()
{
System.out.println("Through disp method");
balance();
}
}
class Test extends Account
{
public static void main(String[]args)
{
Test t=new Test();
t.disp();
}
}

Output:-

C:\JAVATECH>javac Test.java
C:\JAVATECH>java Test

Through disp method
Your balance

Example5:-final class Test.java


final class Account
{
}
class Test extends Account
{
}

Output:-

C:\JAVATECH>javac Test.java

Test.java:5: error: cannot inherit from final Account
class Test extends Account
                   ^

1 error

Comments

Popular posts from this blog

Inner classes

Inner Classes:- class inside class or interface called inner class or nested class. Advantage of inner classes is grouping multiple classes and interfaces into a single class. Another big advantage of inner class is that inner class can happily access all the data or variables of outer class directly. Types of Nested classes:- There are two types of nested classes static and non-static nested classes. (A)Non –static inner classes:- 1)     Member inner class 2)     Anonymous inner class 3)     Local inner class (B)Static nested class Example1:-Outer.java class Outer { class Inner { void disp() { System.out.println("Hello This is Inner class Method"); } } public static void main(String[]args) { Inner in=new Inner(); in.disp(); } } Output:- C:\JAVATECH>javac Outer.java Outer.java:12: error: non-static variable this cannot be referenced from a static context Inner in=new Inner(); ...

Inheritance-4

Example10:- class Student { Student() { System.out.println("This is super class Zero argument constructor"); } Student(String s) { System.out.println("This is super class One argument constructor"); } } class Test extends Student { Test() { super(null); System.out.println("This is sub class Zero argument constructor"); } public static void main(String[]args) { Test t=new Test(); } } Output:- C:\JAVATECH>javac Test.java C:\JAVATECH>java Test This is super class One argument constructor This is sub class Zero argument constructor Example11:- class Student { Student() { System.out.println("This is super class Zero argument constructor"); } Student(String s) { System.out.println("This is super class One argument constructor"); } } class Test extends Student { Test() { super(); super(null); System.out.println("This is su...

command line options

Command Line Argument:- value supplied to the main method String array from the run time or from command prompt called command line argument. All the values will be String. When we supplied value from command prompt automatically an array will be created of that length (number of arguments). Example1:- Command.java class Command { public static void main(String[]args) { System.out.println("Demo of Command Line"); } } Output:- C:\JAVATECH>javac Command.java C:\JAVATECH>java Command command com om Demo of Command Line Example2:- Command.java class Command { public static void main(String[]args) { System.out.println("Demo of Command Line"); System.out.println(args[0]); } } Output:- C:\JAVATECH>javac Command.java C:\JAVATECH>java Command command com om Demo of Command Line Command Example3:- Command.java class Command { public static void main(String[]args) { System.out.println("Demo of ...