问题
I have googled couple of times but still can't understand the supertype method. Can anyone please explain what is this?
回答1:
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).
回答2:
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();
}
}
回答3:
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
.
回答4:
if you are talking about calling a super method, you should try the following
create a class with a method public method e.g. printSomething()
public void printSomething() { System.out.println("hello, I am the first class"); }
create a second class which inherites from the first class and override the printSomething method
@override public void printSomething() { super.printSomething(); }
write a small programm which call the method printSomething of class two and see what will happen
回答5:
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
回答6:
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();
}
}
来源:https://stackoverflow.com/questions/15130067/what-is-a-supertype-method