class

Overriding Fields

In this example we shall show you how to override a super class field in a subclass. To override a super class field in a subclass we have performed the following steps:

  • We have created a class, A that has a final int field set to 1, and an int field. It has an int getAttr() that prints a message and returns the int field.
  • Class B extends A and also has a final int field set to 2. It also has a method int getAttr() that calls its superclass getAttr() and returns its int field.
  • We create a new instance of A and call its getAttr() method.
  • We also create a new instance of B class and call its getAttr() method.
  • Then we create a new A object, using B constructor and use the object’s getAttr() method.
  • In order that B object is initialized A constructor is first called,

as described in the code snippet below.

package com.javacodegeeks.snippets.core;

class A {

    final int field = 1;
    int x;

    int getAttr() {

  System.out.println("In OA.getAttr");

  return field;
    }
}

class B extends A {

    final int field = 2;

    int getAttr() {

  System.out.println("In OB.getAttr");

  super.getAttr(); // Just to show flow of control

  return field;
    }
}

public class OverridingFields {

    public static void main(String[] av) {

  System.out.println("A's getAttr returns: " + new A().getAttr());

  System.out.println("B's getAttr returns: " + new B().getAttr());
     

  // Declared as A, instantiated as B, so gets B's version of things.

  A c = new B();

  System.out.println("C's version of getAttr returns: "


    + c.getAttr());
    }
}

Output:

In A.getAttr
A's getAttr returns: 1
In B.getAttr
In A.getAttr
B's getAttr returns: 2
In B.getAttr
In A.getAttr
C's version of getAttr returns: 2

  
This was an example of how to override a super class field in a subclass in Java.

Byron Kiourtzoglou

Byron is a master software engineer working in the IT and Telecom domains. He is an applications developer in a wide variety of applications/services. He is currently acting as the team leader and technical architect for a proprietary service creation and integration platform for both the IT and Telecom industries in addition to a in-house big data real-time analytics solution. He is always fascinated by SOA, middleware services and mobile development. Byron is co-founder and Executive Editor at Java Code Geeks.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button