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
Post a Comment