Tuesday, 21 January 2014

Using final with Inheritance

how to use final apply to inheritance.

Using final to Prevent Overriding


While method overriding is one of Java’s most powerful features.To disallow a method from being overridden,specify final as a modifier at the start of its declaration.
Methods declared as final cannot be overridden.

Example1:using final to Prevent Overriding


class A 
{
final void meth() 
{
System.out.println("This is a final method.");
}
}
class B extends A
 {
void meth() // ERROR! Can't override.

System.out.println("Illegal!");
}
}

Here meth( ) is declared as final, it cannot be overridden in B. If you attempt to do so, a compile-time error will result.

Using final to Prevent Inheritance


Sometimes you will want to prevent a class from being inherited. To do this, precede the class declaration with final. Declaring a class as final implicitly declares all of its methods as final, too. As you might expect, it is illegal to declare a class as both abstract and final since an abstract class is incomplete by itself and relies upon its subclasses to provide complete implementations.

an example of a final class:

final class A
 {
// ...
}
// The following class is illegal.
class B extends A // ERROR! Can't subclass A
 {
// ...
}

As the comments imply, it is illegal forBto inherit A since A is declared as final.









































No comments :

Post a Comment