C#之抽象类 、抽象方法

例子:创建Vehicle抽象类,并以Vehicle作为基类派生出Car;在Car中重定义Vehicle类的抽象方法和抽象属性;重定义Tostring方法;在Main函数中实现测试。

Program.cs

using System;

namespace ConsoleApp2
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            Car car = new Car {
    
     Name = "五菱宏光" };
            car.FuelUp();
            car.Run();
            Console.WriteLine(car);
        }
    }
    public class Car : Vehicle
    {
    
    
        private string _name;
        public override string Name {
    
     get => _name; set => _name = value; }

        public override void FuelUp()
        {
    
    
            Console.WriteLine(Name + "car fuel up" );
        }
        public override string ToString()
        {
    
    
            return string.Format("{0} car is a kind of vehicle ",this.Name);
        }
    }
}

Vehicle.cs

using System;

namespace ConsoleApp2
{
    
    
    public abstract class Vehicle
    {
    
    
        public abstract string Name {
    
     get; set; }
        public void Run()
        {
    
    
            Console.WriteLine("run run run");
        }

        public abstract void FuelUp();
    }
}
**总结:**
1、抽象类和抽象方法使用abstract修饰符声明,抽象类不能被实例化,抽象类只能是其他类的基类。
2、抽象类的子类必须override抽象类中的所有抽象属性和抽象方法;若未全部override,则子类必须是抽象类。
3、抽象类中可以有非抽象属性和非抽象方法,也可以是私有或者公有,但是如果是私有的话子类就不能访问,无意义,所以一般情况下都设置为公有
4、有抽象方法或抽象属性的类一定是抽象类,抽象类中的属性或方法不一定都是抽象的。
5、抽象属性和抽象方法必须是公有的。

猜你喜欢

转载自blog.csdn.net/weixin_45867397/article/details/105740914
今日推荐