Programa C# para herencia jerárquica

La herencia es un aspecto básico de la programación orientada a objetos. Una superclase, también conocida como clase base, es una clase cuyos miembros se heredan, mientras que una subclase, también conocida como clase derivada, es una clase que hereda de una superclase. También se conocen como clases padre e hijo, respectivamente. De la misma manera que un hijo hereda los rasgos de sus padres y los padres heredan las características de sus antecesores, la herencia en los lenguajes de programación funciona de la misma manera.

Herencia jerárquica

Es una forma de transmitir características de una clase principal a una base, secundaria o subclase en términos técnicos y el aspecto orientado a objetos. La clase padre o superclase es la clase de la que se toman las propiedades, es decir, se heredan las características. La herencia jerárquica describe una situación en la que varias subclases heredan una clase principal. Un tipo de herencia en el que se hereda más de una clase de una única clase principal o base se conoce como herencia jerárquica. La clase base comparte muchas de las mismas propiedades que la clase principal, especialmente aquellas que son comunes en la clase principal. Una sola clase base da lugar a muchas clases. Es como tener varios hijos, cada uno con su propio conjunto de características adquiridas de sus padres. Por ejemplo, en el siguiente diagrama,

Ejemplo 1:

La clase base del siguiente ejemplo es Padre y las clases derivadas son NiñoPrimero y NiñoSegundo. Hemos creado objetos de ambas clases derivadas y llamamos a la misma función de clase base.

C#

// C# program to illustrate the above concept
using System;
  
// Base Class
public class Father 
{
    public string FatherName() 
    { 
        return "Ravi"; 
    }
}
  
// Derived Class
public class ChildFirst : Father 
{
    public string ChildDName() 
    { 
        return "Rohan"; 
    }
}
  
// Derived Class
public class ChildSecond : Father 
{
    public string ChildDName() 
    { 
        return "Nikhil"; 
    }
}
  
class GFG{
  
static public void Main()
{
    ChildFirst first = new ChildFirst();
      
    // Displaying Child Name and Father Name for
    // ChildFirst
    Console.WriteLine("My name is " + first.ChildDName() + 
                      ". My father name is " + 
                      first.FatherName() + ".");
    ChildSecond second = new ChildSecond();
      
    // Displaying Child Name and Father Name for
    // ChildSecond
    Console.WriteLine("My name is " + second.ChildDName() + 
                      ". My father name is " + 
                      second.FatherName() + ".");
}
}
Producción

My name is Rohan. My father name is Ravi.
My name is Nikhil. My father name is Ravi.

Ejemplo 2:

En el siguiente código, creamos tres clases: Person, Teacher y Doctor. En este ejemplo, la clase Person fue heredada por las clases Teacher y Doctor. Se utiliza un constructor en cada clase para inicializar miembros de datos. Luego creamos los objetos Teacher y Doctor y usamos TeacherDetails() y DoctorDetails() para producir información para Teacher y Doctor respectivamente.

C#

// C# program to illustrate the above concept
using System;
  
// Base Class
class Person 
{
    public string name;
    public int aadhar_id;
    public int age;
      
    public Person(int aadhar_id, int age, string name)
    {
        this.aadhar_id = aadhar_id;
        this.name = name;
        this.age = age;
    }
}
  
// Derived Class
class Teacher : Person 
{
    public int teacher_salary;
  
    public Teacher(int aadhar_id, int salary, 
                   string name, int age) : base(aadhar_id, 
                                                age, name)
    {
        teacher_salary = salary;
    }
    public void TeacherDetails()
    {
        Console.WriteLine("teacher ID:      " + aadhar_id);
        Console.WriteLine("teacher Name:    " + name);
        Console.WriteLine("teacher Salary:  " + teacher_salary);
        Console.WriteLine("teacher Age:     " + age);
    }
}
  
// Derived Class
class Doctor : Person 
{
    public int doctor_fees;
  
    public Doctor(int aadhar_id, int fees, 
                  string name, int age) : base(aadhar_id, 
                                               age, name)
    {
        doctor_fees = fees;
    }
    public void DoctorDetails()
    {
        Console.WriteLine("Doctor ID:      " + aadhar_id);
        Console.WriteLine("Doctor Name:    " + name);
        Console.WriteLine("Doctor Fees:    " + doctor_fees);
        Console.WriteLine("Doctor Age:     " + age);
    }
}
  
class GFG{
  
static public void Main()
{
      
    // Creating objects
    Teacher t = new Teacher(25054, 50000, "Sanjay", 28);
    Doctor d = new Doctor(25045, 750, "Rohit", 32);
  
    t.TeacherDetails();
    Console.WriteLine(
        "-----------------------------------");
    d.DoctorDetails();
}
}
Producción

teacher ID:      25054
teacher Name:    Sanjay
teacher Salary:  50000
teacher Age:     28
-----------------------------------
Doctor ID:      25045
Doctor Name:    Rohit
Doctor Fees:    750
Doctor Age:     32

Publicación traducida automáticamente

Artículo escrito por priyavermaa1198 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *