C#—继承和多态

本文介绍了面向对象编程中的两大核心概念:继承与多态。通过具体例子讲解了如何实现类的继承,包括使用base关键字调用基类构造函数。此外,还探讨了多态的概念,包括虚方法的重载、抽象类与抽象方法的定义以及密封类和密封方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、继承

  继承是面向对象语言的特征,是实现代码复用的手段。继承不但可以使用现有类的所有功能,还可以对这些功能进行扩展。

1、继承的实现

语法形式:

[属性集信息][类修饰符]  class 派生类:基类
{
    [派生类成员]
}

例如:

public class Sharpe  //定义图形类Shape
{
      protected string Color
      public Shape()   //无参数构造函数
      {}
      public Shape(string Color)   //构造函数
     
     {
         this.Color=Color;
        }

}

 

public class Circle:Shape   //定义圆类,从Shape类中派生
{
         private double Radius;

         public Circle(string Color,double Radius)
        {
           this.Color=Color;  //圆的颜色
           this.Radius=Radius;  //圆的半径
         }
}

2、base关键字

实际上,上例中Circle调用的是父类中的无参数构造函数,而不是有参数的构造函数。关键字base的作用是调用Shape类的构造函数,并将Circle类的变量初始化。base关键字除了能调用基类的构造函数,还可以调用基类的方法。

上例中的Circle也可以写成:

public class Circle:Shape
{
   private double Radius;
   public  Circle(string Color,double Radius):base(Color)
   {
    this.Color=Color;
    this.Radius=Radius;
    }
}


二、多态

  多态也是面向对象语言的特征之一,指在程序执行之前无法根据函数名和参数确定调用哪一个操作而在程序运行过程中,根据实际运行情况动态确定。

1、虚方法的重载

  在类的方法前加上关键字virtual,则该方法被称为虚方法。通过对虚方法的重载,实现在程序运行过程中确定调用的方法。

例如:

public virtual double Getval()
{
    return 0.0;
}
在Circle类中对虚拟方法重载:
public override double GetVal()
{
   return System.Math.PI*radius*radius;
}

2、抽象类和抽象方法

  抽象类是一种特殊的基类,并不与具体的事物联系。抽象类的定义使用关键字abstract。

例如:

public abstract class Shap   //定义抽象类
{}
    


  在抽象类中也使用关键字abstract定义抽象方法,要求所有的派生非抽象都要重载实现抽象方法。

例如:

public abstract double GetArea();  //抽象类中定义抽象方法
  派生类重载实现
public override double GetArea()//在派生类中重载抽象方法
{}


3、密封类和密封方法

  抽象类只能作为基类,由其他类继承,不能被实例化。相对应的还有一种不能被其他类继承的类,叫做密封类,用sealed关键字。

例如:

public sealed class Rectangular:Shape  //定义密封类Rectangular
{}


这样Rectangular派生的类就不再保留,否则,就会出错。

  如果类的方法声明包含sealed修饰符,该方法称为密封方法。类的实例方法声明包含sealed修饰符,必须同时用override修饰符。

例如:

public virtual double GetArea()
{}
public sealed override double GetArea()
{}


 


 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值