c#学习记录day11

1、抽象

1.抽象成员必须被标记为abstract、抽象成员必须在抽象类中

2.抽象成员必须在抽象类中

3.抽象类不能被实例化

4.子类继承抽象类后,必须把抽象类的所有抽象成员重写(除非子类也是一个抽象类)

5.抽象成员的访问修饰符不能是private,并且抽象类的实例成员可以不被子类重写。

6.抽象类是有构造函数的,虽然不能被实例化

7.如果抽象类的抽象方法有参数,那么子类在重写的时候必须也传入相应的参数。(返回值)

8.如果父类中的方法有默认实现,并且父类需要被实例化,这时可以考虑将父类定义成普通类,用虚方法来实现。

9.如果父类的方法没有默认实现,并且可以不被实例化,则可以将父类定义成抽象方法。

2、简单工程

单例设计模式:保证一个类,只有一个实例。

new:1.在内存中开辟空间2.在开辟的空间中创建对象3.调用对象的构造函数

懒汉式单例设计模式

1.构造函数私有化 private Person(){}

2.声明一个【静态】字段,来存储唯一的对象private static Person _singlePerson = null;

3.提供一个静态方法,用来返回全局唯一的对象

Public static Person GetSinglePerson()

{

if(_singlePerson == null)

{_singlePerson = new Person();}

    return _singlePerson;

}

饿汉式单例设计模式

private static Person _singlePerson = new Person();

Public static Person GetSinglePerson()

{

    return _singlePerson;

}

Gudi.NewGuid().ToString();

Guid.NewGuid()获取标识符

3、接口

面向对象编程-->面向抽象编程-->面向接口编程-->面向【变化】编程

虚方法-->抽象类-->接口:封装变化。

1.接口是一种规范,强调一个能力

2.只要一个类继承了一个接口,就必须实现接口中的所有成员

3.接口不允许被实例化

4.接口种的成员不允许加访问修饰符,默认为public

5.接口种的方法可以有方法、属性、索引器,事件,不能有字段和构造函数

6.接口与接口之间,可以多继承。

7.接口不能继承一个类,而类可以实现一个或者多个接口8、实现接口的子类,必须实现接口的全部成员

9.一个子类可以继承一个父类和多个接口,如果一个子类继承了一个父类又继承了接口,语法上要求必须先继承父类,再继承接口。

10.显示实现接口,解决方法重名问题

11.接口当一个抽象类实现的时候,需要抽象类的子类去实现接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值