Question

I have googled couple of times but still can't understand the supertype method. Can anyone please explain what is this?

Was it helpful?

Solution

There is a notion of supertype and subtype in OOPS, In java this kind of relationship is implemented by inheritance i.e. using extends keyword:

class A {} // super class
class B extends A {} //sub class

Any member (fields, methods) declared in super class is to be called supertype.

Therefore in above context if class A has method like

class A {
   void set()
}

Set is supertype method for class B.

However, notice that if there is another class say C:

class C {
    void set()        
}

Then set() method is not supertype for C class because there is no relationship between class A and class C (relationship is created by extends keyword, for inheritance).

OTHER TIPS

if you are talking about calling a super method, you should try the following

  1. Create a class with a method public method e.g. printSomething()
    public void printSomething() {
       System.out.println("hello, I am the first class");
     }
    
  2. Create a second class which inherites from the first class and override the printSomething method
    @override
    public void printSomething() {
    super.printSomething();
    }
    
  3. Write a small programme which call the method printSomething of class two and see what will happen

Super at Constructer level

class SuperClass
{
    int num=10;
    public void display()
    {
        System.out.println("Superclass display method");
    }
}

class SubClass extends SuperClass
{
    int num=20;

    public void display()
    {
        System.out.println("the value of subclass variable name:"+num);
        System.out.println("Subclass display method");
    }

    public void Mymethod()
    {
        super.display();
        System.out.println("the value of superclass variable name:"+super.num);
    }

    public static void main(String[] args)
    {
        SubClass obj=new SubClass();
        obj.Mymethod();
        obj.display();
    }
}

In java every thing are object and a method is also a object of class java.lang.reflect.Method So the super type of method can be consider as the super class of java.lang.reflect.Method that is the AccessibleObject.

Super Type and sub type is a property of inheritance i.e for the purpose of re-usability of code. I am giving you example of Super Class and Sub class. For more you can follow here.

using System;

namespace MultilevelInheritance
{
    public class Customer
    {
        public float fDis { get; set; }
        public Customer()
        {
            Console.WriteLine("I am a normal customer.");
        }
        public virtual void discount()
        {
            fDis = 0.3F;
            Console.WriteLine("Discount is :{0}", fDis);
        }

    }
    public class SilverCustomer : Customer
    {
        public SilverCustomer()
            : base()
        {
            Console.WriteLine("I am silver customer.");
        }
        public override void discount()
        {
            fDis = 0.4F;
            Console.WriteLine("Discount is :{0}", fDis);
        }
    }
    class GoldenCustomer : SilverCustomer
    {
        public GoldenCustomer()
        {
            Console.WriteLine("I am Golden customer.");
        }
        public override void discount()
        {
            fDis = 0.6F;
            Console.WriteLine("Discount is :{0}", fDis);
        }

    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MultilevelInheritance
{
    class Program
    {
        static void Main(string[] args)
        {
            Customer objCus = new Customer();
            objCus.discount();

            SilverCustomer objSil = new SilverCustomer();
            objSil.discount();

            GoldenCustomer objGold = new GoldenCustomer();
            objGold.discount();


            Console.ReadLine();
        }
    }
}

enter image description here

Super is used to invoke parent class Properties used at 3 levels variable constructer and method level

1.Super at Variable

class Super
{
    int age;
    Super(int age)
    {
        this.age=age;
    }
        public void getAge()
        {
            System.out.println(age);
        }
}
class Sub extends Super
{
    Sub(int age)
    {
        super(age);
    }
    public static void main(String[] args)
    {
         Super obj=new  Super(24);
         obj.getAge();
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top