C#基础概念再回顾

一、抽象类、抽象方法、方法重写

       抽象方法:在面向对象编程语言中,抽象方法指一些只有方法声明,而没有具体方法体的方法。抽象方法一般存在于抽象类或接口中。

       方法重写:子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做一定的修改,这就需要采用方法的重写,又叫方法覆盖。

//在抽象类和抽象方法中,使用abstract修饰符

//声明一个抽象方法,现金抽象类

abstract class CashSuper

{

    //抽象方法只能定义在抽象类中

    public abstract double acceptCash(double money);
}


/ /具体类中对抽象类进行继承,对抽象方法进行重写,使用override修饰符

//正常收费子类继承抽象类

Class CashNormal:CashSuper

{

    //重写抽象类中的抽象方法

    public overridedouble acceptCash(double money)

    {

    return money;

    }

}

二、抽象方法与虚方法

       虚方法可以有实现体,若一个实例方法的声明中含有virtual修饰符,则称该方法为虚方法。使用了virtual修饰符后,不允许再有static、abstract或者override修饰符。

//装饰模式中的虚方法代码:

class Person

{

    //Person类中的虚方法

    public virtual void Show()

    {

        Console.WriteLine("装扮的{0},name);

    }

}

//在派生的服饰类中对虚方法进行重写

classFinery:Person

{

    public override void Show()

    {

        If(component !=null)

        {

            componet.Show();

        }

    }

}

两者区别:

       抽象方法只有方法名称没有方法体(即没有具体实现方法),子类必须重写父类中的方法;虚方法则有方法体,但是子类可以覆盖,也可以不覆盖。

       抽象方法一般存在于抽象类或接口中,虚方法可以存在于一般类中。

三、构造函数、重载

       构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。其特点:1.构造函数的命名必须和类型完全相同;2.它没有返回值,也不能用void来修饰;3.构造函数不能被直接调用,必须通过new运算符在穿件对象是才会自动调用,而一般的方法是在执行程序到它的时候被调用的。

       方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。调用方法时,通过传递给它们的个不同个数和类型的参数来决定具体使用哪个方法。

//构造函数的重载

public Person(string name, char gender, int age)

{

       this._name = name;//指示代词

       this._gender = gender;

       this._age = age;

}

public Person(string name)

{

      this._name = name;

}

public Person()

{

}

//客户端调用

staticvoid Main(string[] args)

{

      Person per=new Person("张三",'男',18);

       Person p = new Person("张三");

}

猜你喜欢

转载自blog.csdn.net/sevengirl2017/article/details/79435273
今日推荐