Inheritance
Inheritance is a process where child class acquires the properties of super class.
OR
Inheritance is a process where features of parent/super class are inherited in child/sub class.
Program 3.1 to show how features of parent/super class are inherited in child/sub class >
Animal is superclass of Lion.
Lion is subclass of Animal.
food() method of Animal class is inherited in Lion class.
class Animal {
void food() {
System.out.println("Animal eat food");
}
}
class Lion extends Animal {
}
/** JavaMadeSoEasy.com */
public class MyClass{
public static void main(String[] args) {
Lion obj = new Lion();
obj.food();
}
}
/*OUTPUT
Animal eat food
*/
|
Inheritance can be achieved by using following keywords>
- extends and
- implements
Class can use extend and implements >
Class always extends another class.
Class always implements interface.
IS-A relationship with Classes>
Animal IS-A Object (because all classes extends java.lang.Object by default)
AquaticAnimal IS-A Object
AquaticAnimal IS-A Animal
Fish IS-A Object
Fish IS-A Animal
Fish IS-A AquaticAnimal
Program 3.2 to demonstrate IS-A relationship with Classes>
class Animal {}
class TerrestrialAnimal extends Animal{}
class AquaticAnimal extends Animal{}
class Lion extends TerrestrialAnimal {}
class Goat extends TerrestrialAnimal {}
class Fish extends AquaticAnimal {}
class Whale extends AquaticAnimal {}
/** JavaMadeSoEasy.com */
public class MyClass{
public static void main(String[] args) {
Object a = new Animal(); //Animal IS-A Object
Object aa1 = new AquaticAnimal(); //AquaticAnimal IS-A Object
Animal aa2 = new AquaticAnimal(); //AquaticAnimal IS-A Animal
Object f1 = new Fish(); //Fish IS-A Object
Animal f2 = new Fish(); //Fish IS-A Animal
AquaticAnimal f3 = new Fish(); //Fish IS-A AquaticAnimal
}
}
|
Interface uses extend only >
Interface always extends another interface.
Interface can extend more than one interface.
IS-A relationship with Classes and interfaces>
AquaticAnimal IS-A Object
AquaticAnimal IS-A Animal
Fish IS-A Object
Fish IS-A Animal
Fish IS-A AquaticAnimal
Program 3.3 to demonstrate IS-A relationship with Classes and interfaces>
interface Animal {}
class TerrestrialAnimal implements Animal{}
class AquaticAnimal implements Animal{}
class Lion extends TerrestrialAnimal {}
class Goat extends TerrestrialAnimal {}
class Fish extends AquaticAnimal {}
class Whale extends AquaticAnimal {}
/** JavaMadeSoEasy.com */
public class MyClass{
public static void main(String[] args) {
Object aa1 = new AquaticAnimal(); //AquaticAnimal IS-A Object
Animal aa2 = new AquaticAnimal(); //AquaticAnimal IS-A Animal
Object f1 = new Fish(); //Fish IS-A Object
Animal f2 = new Fish(); //Fish IS-A Animal
AquaticAnimal f3 = new Fish(); //Fish IS-A AquaticAnimal
}
}
|
RELATED LINKS>
Java tutorial & history of java >
Java tutorial - Advantage, Where is java used in real world, platform independent language
Classes, objects, interface, abstract classes and constructors >
Classes and Objects in java - Class consist of blocks, constructor, variables, methods, inner classes and inner interfaces
Interface in java - Multiple inheritance, Marker interfaces, When to use interface practically, 12 features
Abstract class in java - When to use abstract class or interface practically, 10 features
Access modifiers >
Access modifier /Access specifier in java - private, package-private(Default), protected and public - Diagram and tabular form
Method overloading and overriding >
Method overloading in java - in detail with programs,10 Features,need of method overloading, overloading main method, Diagram and tabular form of Implicit casting/promotion of primitive Data type
Method overriding in java - in detail with programs, 10 Features, need of method overriding, understanding @Override annotation, Covariant return, diagram to understand access modifiers
Labels:
Core Java
core java Basics