抽象类与抽象方法

l 抽象类与抽象方法由abstract修饰

l abstract的使用注意

? 抽象方法没有方法体

? 抽象成员只能存在于抽象类中

? 抽象类可以有非抽象成员

? 抽象类的派生类必须实现抽象方法体

? 抽象类只能用作基类,无法实例化

static void Main(string[] args)

{

//抽象方法是用abstract修饰;

//抽象方法没有方法体

//抽象方法必须在抽象类中

//抽象类 无法实例化

//父类是抽象类,子类继承了这个类,必须把抽象类中的抽象方法重写

Pig pig = new Pig();

pig.Shout();

Console.ReadKey();

}

}

public abstract class Animal

{

private string _name;

public string Name

{

get { return _name; }

set { _name = value; }

}

private char _gender;

public char Gender

{

get { return _gender; }

set { _gender = value; }

}

private int _age;

public int Age

{

get { return _age; }

set { _age = value; }

}

public abstract void Shout();//抽象方法

public void SayHello()

{

Console.WriteLine("哈哈哈");

}

}

public class Pig :Animal

{

public override void Shout()//重写方法

{

Console.WriteLine("哼哼叫");

}

}

#region 复习的代码

public class Person

{

private string _name;

public string Name

{

get { return _name; }

set { _name = value; }

}

private char _gender;

public char Gender

{

get { return _gender; }

set { _gender = value; }

}

private int _age;

public int Age

{

get { return _age; }

set { _age = value; }

}

public virtual void Show()//重写方法

{

Console.WriteLine("我是人类");

}

}

public class Teacher : Person

{

public override void Show()//重写方法

{

Console.WriteLine("我是一个老师");

}

}

#endregion

}

虚方法抽象方法比较:

C多态 - songFeng4985 - 王松峰的博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值