我用Google搜索了几次,但仍然无法理解超类型方法。任何人都可以解释这是什么?
答案 0 :(得分:16)
在OOPS中有一个超类型和子类型的概念,在java中,这种关系是通过继承实现的,即使用extends
关键字:
class A {} // super class
class B extends A {} //sub class
在超类中声明的任何成员(字段,方法)都将被称为超类型。
因此,在上述情况下,如果类A
具有类似
class A {
void set()
}
Set是类B
的超类型方法。
但请注意,如果有其他课程说C
:
class C {
void set()
}
set()
类的C
方法不是超类型,因为类A
和类C
之间没有关系(关系已创建)按extends
关键字,继承)。
答案 1 :(得分:1)
Super at Constructer等级
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();
}
}
答案 2 :(得分:0)
在java中,每个东西都是对象,而方法也是java.lang.reflect.Method类的对象
因此,超类型的方法可以被视为java.lang.reflect.Method
的{{1}}的超类。
答案 3 :(得分:0)
如果你在谈论调用超级方法,你应该尝试以下
使用方法公共方法创建一个类,例如printSomething()
public void printSomething(){ System.out.println(“你好,我是第一堂课”); }
创建第二个类,它继承自第一个类并覆盖printSomething方法
@override public void printSomething(){ super.printSomething(); }
编写一个小程序,调用第二类方法printSomething,看看会发生什么
答案 4 :(得分:0)
超类型和子类型是继承的属性,即为了代码的可重用性。我给你的超级和子类的例子。如需更多信息,请点击here。
使用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();
}
}
}
答案 5 :(得分:0)
Super用于调用父类属性 用于3个级别 变量构造函数和方法级
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();
}
}