面向对象的三大特征

面向对象的三大特征:封装 继承 多态

封装:对方法、属性、字段的包装(把数据和方法封装在类中,调用的时候实例化对象就可以)

好处:对于使用者来说:方便使用
对于使用者来说:对于开发者来说:易扩展 重用性强 易修改(直接定位到某个修改的 方法)对代码的组织结构比较清晰

继承:子承父业 继承父类非私有的属性、方法 、字段

好处:代码重用

多态:多种形态(同一个东西在不同状态下的身份)

好处:依赖于抽象,而不依赖于具体,增加灵活性

只想了解面向对象三大特征概念的上面的就够了,下面的例子可以详细理解多态
下面从两个方面来理解一下多态

1.在接口的情况下理解多态
话不多说上例子

	interface Iworker
	 {
	 	void work();
	 }
	interface ITeacher{
	  	void Teach();
	 }
	interface Iboy
	{
	 	void play();
	}
	interface IPerson
	{
	  void Eet();
	}

 	class ChildWorker : IPerson, Iboy, Iworker
  	{
	  	public void Eet()
	 	{
	  		throw new NotImplementedException();
	  	}
	  	public void play()
	  	{
	   		 throw new NotImplementedException();
	   	}
	   public void work()
	  	{
	   		throw new NotImplementedException();
	   	}
 	}

  class Boy : IPerson, Iboy
  {
	  public void Eet()
	   	{
	   		throw new NotImplementedException();
		}
	  	public void play()
		  {
		  	throw new NotImplementedException();
		 }
  }
	class Program
	  {
	   static void Main(string[] args)
	  {
   		//只要实现了iboy接口的都可以用
     	//多种形态的第一种用法
	    Iboy[] boys = new Iboy[5];
	    boys[0] = new Boy();
	    boys[1] = new ChildWorker();
   }
}
  1. 在继承的情况下理解多态 (里氏替换原则:父类型变量接收子类型对象)
    话不多说上例子
//继承的情况下理解多态
	class Person {
		public string Name { get; set; }
	 }
	/// <summary>
	/// 继承后拥有了父类的身份
	/// </summary>
  	class boy2:Person
	{
	   	public void Play() { }
	}
	class Program
	{
		static void Main(string[] args)
		{
		//继承了父类就有了父类的属性和方法
		boy2 boy = new boy2();
		boy.Name = "zhangsan";
	}
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值