3/30/2019 Inheritance: Your Guided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 1/5 Inheritance Inheritance Inheritance: Inheritance in Java is a mechanism in which one object acquires all the properties and behaviors of a parent object. The idea behind inheritance in Java is that you can create new classes that are built upon existing classes. When you inherit from an existing class, you can reuse methods and fields of the parent class. Moreover, you can add new methods and fields in your current class also. Inheritance represents the IS-A relationship which is also known as a parent-child relationship. Advantages of inheritance: For Method Overriding (so runtime polymorphism can be achieved). For Code Reusability. Syntax: class Subclass-name extends Superclass-name { //methods and fields } A class which is inherited is called a parent or superclass, and the new class is called child or subclass. Sub Class/Child Class: Subclass is a class which inherits the other class. It is also called a derived class, extended class, or child class. Super Class/Parent Class: Superclass is the class from where a subclass inherits the features. It is also called a base class or a parent class. Reusability: As the name specifies, reusability is a mechanism which facilitates you to reuse the fields and methods of the existing class when you create a new class. You can use the same fields and methods already defined in the previous class. Example: Cat is the subclass and Animal is the superclass. The relationship between the two classes is Cat IS-A Animal. It means that Cat is a type of Animal. class Animal { } class Cat extends Animal { }
3/30/2019 Inheritance: Your Guided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 2/5 Types of inheritance in java On the basis of class, there can be three types of inheritance in java: single, multilevel and hierarchical. typesofinheritance.jpg In java programming, multiple and hybrid inheritance is supported through interface only. multiple.jpg Note: Multiple inheritance is not supported in Java through class. When one class inherits multiple classes, it is known as multiple inheritance. Single Inheritance Example single.png class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class Demo { public static void main(String args[]) { Dog d=new Dog(); d.bark(); d.eat(); } } Output: barking... eating... Multilevel Inheritance Example Multi level inheritance.png
3/30/2019 Inheritance: Your Guided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 3/5 class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class BabyDog extends Dog { void weep() { System.out.println("weeping..."); } } class Demo { public static void main(String args[]) { BabyDog d=new BabyDog(); d.weep(); d.bark(); d.eat(); } } Output: weeping... barking... eating... Hierarchical Inheritance Example heirarchical inheritance.png class Animal { void eat() {
3/30/2019 Inheritance: Your Guided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 4/5 System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class Cat extends Animal { void meow() { System.out.println("meowing..."); } } class Demo { public static void main(String args[]) { Cat c=new Cat(); c.meow(); c.eat(); //c.bark();//C.T.Error } } Output: meowing... eating... Why multiple inheritance is not supported in java? To reduce the complexity and simplify the language, multiple inheritance is not supported in java. Consider a scenario where A, B, and C are three classes. The C class inherits A and B classes. If A and B classes have the same method and you call it from child class object, there will be ambiguity to call the method of A or B class. If you inherit 2 classes, there will be compile time error. class A { void msg() {
3/30/2019 Inheritance: Your Guided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 5/5 System.out.println("Hello"); } } class B { void msg() { System.out.println("Welcome"); } } class C extends A,B { public static void main(String args[]) { C obj=new C(); obj.msg();//Now which msg() method would be invoked? } } Output: Compile Time Error

Inheritance used in java

  • 1.
    3/30/2019 Inheritance: YourGuided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 1/5 Inheritance Inheritance Inheritance: Inheritance in Java is a mechanism in which one object acquires all the properties and behaviors of a parent object. The idea behind inheritance in Java is that you can create new classes that are built upon existing classes. When you inherit from an existing class, you can reuse methods and fields of the parent class. Moreover, you can add new methods and fields in your current class also. Inheritance represents the IS-A relationship which is also known as a parent-child relationship. Advantages of inheritance: For Method Overriding (so runtime polymorphism can be achieved). For Code Reusability. Syntax: class Subclass-name extends Superclass-name { //methods and fields } A class which is inherited is called a parent or superclass, and the new class is called child or subclass. Sub Class/Child Class: Subclass is a class which inherits the other class. It is also called a derived class, extended class, or child class. Super Class/Parent Class: Superclass is the class from where a subclass inherits the features. It is also called a base class or a parent class. Reusability: As the name specifies, reusability is a mechanism which facilitates you to reuse the fields and methods of the existing class when you create a new class. You can use the same fields and methods already defined in the previous class. Example: Cat is the subclass and Animal is the superclass. The relationship between the two classes is Cat IS-A Animal. It means that Cat is a type of Animal. class Animal { } class Cat extends Animal { }
  • 2.
    3/30/2019 Inheritance: YourGuided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 2/5 Types of inheritance in java On the basis of class, there can be three types of inheritance in java: single, multilevel and hierarchical. typesofinheritance.jpg In java programming, multiple and hybrid inheritance is supported through interface only. multiple.jpg Note: Multiple inheritance is not supported in Java through class. When one class inherits multiple classes, it is known as multiple inheritance. Single Inheritance Example single.png class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class Demo { public static void main(String args[]) { Dog d=new Dog(); d.bark(); d.eat(); } } Output: barking... eating... Multilevel Inheritance Example Multi level inheritance.png
  • 3.
    3/30/2019 Inheritance: YourGuided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 3/5 class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class BabyDog extends Dog { void weep() { System.out.println("weeping..."); } } class Demo { public static void main(String args[]) { BabyDog d=new BabyDog(); d.weep(); d.bark(); d.eat(); } } Output: weeping... barking... eating... Hierarchical Inheritance Example heirarchical inheritance.png class Animal { void eat() {
  • 4.
    3/30/2019 Inheritance: YourGuided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 4/5 System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class Cat extends Animal { void meow() { System.out.println("meowing..."); } } class Demo { public static void main(String args[]) { Cat c=new Cat(); c.meow(); c.eat(); //c.bark();//C.T.Error } } Output: meowing... eating... Why multiple inheritance is not supported in java? To reduce the complexity and simplify the language, multiple inheritance is not supported in java. Consider a scenario where A, B, and C are three classes. The C class inherits A and B classes. If A and B classes have the same method and you call it from child class object, there will be ambiguity to call the method of A or B class. If you inherit 2 classes, there will be compile time error. class A { void msg() {
  • 5.
    3/30/2019 Inheritance: YourGuided Course Template https://canvas.instructure.com/courses/1480238/pages/inheritance?module_item_id=21012851 5/5 System.out.println("Hello"); } } class B { void msg() { System.out.println("Welcome"); } } class C extends A,B { public static void main(String args[]) { C obj=new C(); obj.msg();//Now which msg() method would be invoked? } } Output: Compile Time Error