web-dev-qa-db-fra.com

Comment créer une sous-classe en C #?

Comment créer une sous-classe en C # pour ASP.NET à l'aide de Visual Studio 2010?

13
Neel Desai

Est-ce que tu veut dire ça?

public class Foo
{}

public class Bar : Foo
{}

Dans ce cas, Bar est la sous-classe.

24
Herman Cordes

Voici un exemple d'écriture d'une classe ParentClass, puis de la création d'une classe ChildClass en tant que sous-classe.

using System;

public class ParentClass
{
    public ParentClass()
    {
        Console.WriteLine("Parent Constructor.");
    }

    public void print()
    {
        Console.WriteLine("I'm a Parent Class.");
    }
}

public class ChildClass : ParentClass
{
    public ChildClass()
    {
        Console.WriteLine("Child Constructor.");
    }

    public static void Main()
    {
        ChildClass child = new ChildClass();

        child.print();
    }
}

Sortie:

 Constructeur parent .
 Constructeur enfant .
 Je suis une classe de parents .

Plutôt que de réécrire un autre exemple d'héritage .Net, j'ai copié un exemple correct tiré du site Web C Sharp Station .

26
Brian Scott

Voulez-vous dire héritage de classe?

public class SubClass: MasterClass
{
}
5
Pavel Morshenyuk

Si vous mettez une classe dans une classe, c'est un peu comme une.

public class Class1
{
   public class Class2
   {
      public void method1() 
      {
         //Code goes here.
      }
   }
}

Vous pouvez ensuite référencer la sous-classe en utilisant: Class1.Class2.method1().

1
Bradley A.

Cette page l'explique bien:

public class SavingsAccount : BankAccount
{
    public double interestRate;

    public SavingsAccount(string name, int number, int balance, double rate) : base(name, number)
    {
        accountBalance = balance;
        interestRate = rate;
    }

    public double monthlyInterest()
    {
        return interestRate * accountBalance;
    }
}

static void Main()
{
    SavingsAccount saveAccount = new SavingsAccount("Fred Wilson", 123456, 432, 0.02F);

    Console.WriteLine("Interest this Month = " + saveAccount.monthlyInterest());
}

Si la méthode monthlyInterest existe déjà dans la classe BankAccount (et est déclarée abstract, virtual ou override), la définition de la méthode SavingsAccount devrait inclure override, comme expliqué ici . Ne pas utiliser override pour redéfinir de telles méthodes de classe entraînera un avertissement du compilateur CS0108, qui peut être supprimé en utilisant new comme indiqué de manière confuse ici .

0
Cees Timmerman