《C#高级编程》第四章学习笔记

继承

类型

  • 单重继承,只能继承一个基类
  • 多重继承,继承多个类,C#不支持,接口能多重继承
  • 多层继承,A继承B,B继承C
  • 接口继承,能继承接口

实现继承

public class Test : BaseTest,ITry,IInterface
{
	// 冒号:基类放前面,接口放后面
}
  • 虚方法
    virtual关键字修饰方法,能够在派生的类中重写此方法,重写时用override关键字修饰。只能重写一次,而且名称参数必须完全相同,只有实现不同。

  • 多态性
    可以动态的调用方法,方法接受一个派生类的参数,实现派生类内部的方法,可以从基类的方法,向外输出。

  • 调用方法的基类版本,base.()

  • 派生类的构造函数,从基类开始按照层次结构来调用构造函数,知道满足实例化对象的要求

修饰符

  • 访问修饰符
    在这里插入图片描述
  • 其他修饰符
    在这里插入图片描述

接口

声明方式和抽象类相同,但是不允许有任何实现,只能包含方法,属性,索引器和事件的声明。内部成员没有访问修饰符,没有字段,继承了接口就必须实现其内部所有方法。

  • 定义和实现接口
namespace test1
{
	public interface IAccount
	{
		void Payin(decimal amount);
		bool withdraw(decimal amount);
		decimal balance{get;}
	}
}
namespace test1.account
{
	public class MyAccount:IAccount
	{
		private decimal _balance ;
		public void Payin(decimal amount)
		{
			_balance+=amount;
		}
		public bool withdraw(decimal amount)
		{
			if(_balance>amount)
			{
				_balance-+amount;
				return true;
			}
			sole.WriteLine("Faild");
			return false;
		}
		public decimal balance=_balance;
	}
}
  • 派生类的接口
    在实现继承的接口后,还定义自己新的方法

Is和As运算符

  • as
    返回对象的引用,若对象不是所要求的类型,返回null
IAccount account=o as IAccount;
if(account!=null)
{
// do something
}
  • is
    根据对象是否是指定的类型,返回true或false
if(o is IAccount)
{
IAccount account=(IAccount)o;
// do something
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值