Skip to content

Latest commit

 

History

History
174 lines (106 loc) · 5.31 KB

File metadata and controls

174 lines (106 loc) · 5.31 KB

Inheritance in Java


Inheritance

  • Uses the Extends keyword

  • Java uses Single Inheritance

    • Only one class can be inherited at a time
  • ex) Dog extends Animal

    => The Dog class inherits from the Animal Class

  • The parent class can be accessed with the super keyword

    => super();

  • The implicitly called super() invokes the parent's default constructor

  • The parent constructor of all objects is Object!!!!!!!!

  • When loaded into memory, the parent is on top and the child is on the bottom

  • When searching for data, it goes from the bottom child upward to the parent

    => It searches from the bottom and goes up if not found

  • ex) If the data type is Dog, both Animal and Object are accessible

  • Using super, you can skip one child class and search from the parent

  • is-a relationship

    => The data type of all objects can be the parent

    • Data compatibility is only possible in parent-child relationships
      • Not possible in sibling relationships!
    • A parent type cannot access child data at the bottom

super();

  • Calls the parent's constructor.

    • Even if removed, it is automatically included!
    • Even if absent, it is automatically called!
  • If not visible, it is omitted!

  • Like the this() method, it is only allowed in the first statement!

    • So you can tell that super() is absent in constructors where the this() method is used
    • super.______ allows searching from the parent area instead of the child!
  • Both this. keyword and super. keyword can only be used in the heap area!!!!


img



Method Overloading

  • Multiple methods with the same name can exist within a single class
    • However, the type or number of the method's parameters must be different!


Constructor

  • A function created when an object is created

  • The constructor function name is the same as the class name

  • Return type must not be mentioned - method overloading applies

  • Constructors can also be called by method name

    • this();
  • A constructor with no parameters = default constructor

  • public can be added or omitted

  • Access modifiers can be specified



Overriding in Java

In any object-oriented programming language, Overriding is a feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its super-classes or parent classes. When a method in a subclass has the same name, same parameters or signature and same return type(or sub-type) as a method in its super-class, then the method in the subclass is said to override the method in the super-class.


  • Redefining a function inherited from the parent!
  • Just bring over the method declaration as is!
  • Overriding is not mandatory!
    • So no error is shown.. fix it yourself~

overriding in java


img

  • If inheritance is not mentioned, it can be seen that java.lang.Object is automatically inherited!
  • Class Animal extends Object!
  • Object = methods available to all objects
    • At the very top of any object is Object!

Is a

  • The data type of all objects can be the parent!!
    • The data type of all objects is Object!
      • why? Because Object is at the very top of all objects' memory!

ex1)

Animal a = new Animal();
Object
  • Since the parent object of Animal is Object, Object can also be used as the data type when declaring an object!
  • However, if the type is Object, the data inside Animal cannot be accessed, and the accessible type is limited to the very top!

ex2)

Animal d = new Dog();
Dog
    Object
  • Since Dog has Animal as a parent object, Animal or Object can be used when declaring an object!

    • When declared as Animal, Dog is not accessible; Animal and above (Animal + Object) are accessible
  • All objects in Java can be of Object type, but the accessible information is limited!

  • The parent object can be accessed through type casting!

    => Casting in objects -> Up casting

    Ex) ((Animal)d).kind;

    ​ => If you up-cast Dog, which is originally Dog, to Animal, you can directly access Animal


img

img


Annotations

: a tag that represents the metadata i.e. attached with class, interface, methods or fields to indicate some additional information which can be used by java compiler and JVM.

-> ex) @Override


Polymorphism

  • the ability of an object to take on many forms
    • By incorporating overriding techniques, a single method can accept various types of objects!