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.接口当一个抽象类实现的时候,需要抽象类的子类去实现接口。