11

私は数回グーグルで検索しましたが、まだスーパータイプの方法を理解できません。誰がこれが何であるかを説明できますか?

4

6 に答える 6

32

OOPS にはスーパータイプとサブタイプの概念があります。Java では、この種の関係は継承によって、つまりextendsキーワードを使用して実装されます。

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

スーパークラスで宣言されたすべてのメンバー (フィールド、メソッド) は、スーパータイプと呼ばれます。

したがって、上記のコンテキストで、クラスAに次のようなメソッドがある場合

class A {
   void set()
}

Set は class のスーパータイプ メソッドですB

ただし、別のクラスがある場合は次のように言うことに注意してCください。

class C {
    void set()        
}

クラスとクラスの間に関係がないため、set()メソッドはクラスのスーパータイプではありません(関係は継承のためにキーワードによって作成されます)。CACextends

于 2013-02-28T08:14:42.557 に答える
3

スーパーメソッドの呼び出しについて話している場合は、次のことを試してください。

  1. メソッドpublicメソッドを使用してクラスを作成します。例:printSomething()
    public void printSomething() {
       System.out.println("hello, I am the first class");
     }
    
  2. 最初のクラスから継承する2番目のクラスを作成し、printSomethingメソッドをオーバーライドします
    @override
    public void printSomething() {
    super.printSomething();
    }
    
  3. クラス2のメソッドを呼び出す小さなプログラムを作成し、printSomething何が起こるかを確認します
于 2013-02-28T08:36:32.533 に答える
1

java.lang.reflect.MethodJavaでは、すべてのものがオブジェクトであり、メソッドもクラスjava.lang.reflect.Methodのオブジェクトです。したがって、メソッドのスーパータイプは、そのスーパークラスがであると見なすことができますAccessibleObject

于 2013-02-28T08:19:05.813 に答える
1

スーパータイプとサブタイプは、コードの再利用を目的とした継承のプロパティです。スーパークラスとサブクラスの例を挙げています。詳細については、こちらをフォローしてください。

システムを使用して;

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

ここに画像の説明を入力

于 2016-09-11T15:02:34.287 に答える