私は数回グーグルで検索しましたが、まだスーパータイプの方法を理解できません。誰がこれが何であるかを説明できますか?
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()メソッドはクラスのスーパータイプではありません(関係は継承のためにキーワードによって作成されます)。CACextends
スーパーメソッドの呼び出しについて話している場合は、次のことを試してください。
- メソッド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.MethodJavaでは、すべてのものがオブジェクトであり、メソッドもクラス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();
}
}
}