私は数回グーグルで検索しましたが、まだスーパータイプの方法を理解できません。誰がこれが何であるかを説明できますか?
6 に答える
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()
メソッドはクラスのスーパータイプではありません(関係は継承のためにキーワードによって作成されます)。C
A
C
extends
スーパーメソッドの呼び出しについて話している場合は、次のことを試してください。
- メソッドpublicメソッドを使用してクラスを作成します。例:
printSomething()
public void printSomething() { System.out.println("hello, I am the first class"); }
- 最初のクラスから継承する2番目のクラスを作成し、printSomethingメソッドをオーバーライドします
@override public void printSomething() { super.printSomething(); }
- クラス2のメソッドを呼び出す小さなプログラムを作成し、
printSomething
何が起こるかを確認します
java.lang.reflect.Method
Javaでは、すべてのものがオブジェクトであり、メソッドもクラスjava.lang.reflect.Methodのオブジェクトです。したがって、メソッドのスーパータイプは、そのスーパークラスがであると見なすことができますAccessibleObject
。
スーパータイプとサブタイプは、コードの再利用を目的とした継承のプロパティです。スーパークラスとサブクラスの例を挙げています。詳細については、こちらをフォローしてください。
システムを使用して;
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();
}
}
}