什么是超类型方法?

时间:2013-02-28 07:41:50

标签: java oop supertype

我用Google搜索了几次,但仍然无法理解超类型方法。任何人都可以解释这是什么?

6 个答案:

答案 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)

如果你在谈论调用超级方法,你应该尝试以下

  1. 使用方法公共方法创建一个类,例如printSomething()

    public void printSomething(){    System.out.println(“你好,我是第一堂课”);  }

  2. 创建第二个类,它继承自第一个类并覆盖printSomething方法

    @override  public void printSomething(){ super.printSomething();   }

  3. 编写一个小程序,调用第二类方法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();
        }
    }
}

enter image description here

答案 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();
    }
}