抽象类

抽象类 不能实例化 用来被继承    private  有非抽象成员 字段 方法

抽象方法 没有方法体{} 用来覆写

抽象属性 类似自动实现{set;get;}

调用        基类是抽象类 包含抽象方法   派生类对象赋值给基类的对象(不实例化,只声明),基类对象调用抽象方法,实现多态。

MyAbstractClass[] msc=new MyAbstractClass[100];抽象类不能实例化,抽象类构造函数设断点,f11单步调试,没进构造函数。数组开辟了空间,里面有默认值null

int32,一个字节占8个2进制位,32/8=4 占4个字节

抽象类成员  包含正常类的成员  ,  抽象成员的方法 属性 事件(一个私有委托两个方法) 索引器(属性) 。

构造方法  有非抽象成员,一定有构造方法 。

实例化 抽象类构造函数可以赋值,开辟空间,不能创建对象不能实例化 。

基类添加一个私有object字段  封装成只读属性  基类的构造函数接受object类型的参数 把它赋值给字段,在派生类中构造函数调用基类的构造函数传参,派生类中不在声明定义计算所需的字段存储值,在派生类中覆写的抽象成员调用base.字段 计算。
    public  MyClass(double a,double b)    :base(new double[](a,b)){}       用的时候把base.字段  强转换为double[]

易错:派生类忘记继承 抽象方法忘记关键字

隐藏基类方法  基类派生类同一个方法,引用变量是什么类型调用谁的方法,派生类方法加new 效果一样,不出警告

              多态     内部实际对象类型调用谁的方法

可扩展性 一个项目包含两个类库  新建文件夹 复制exe 和两个dLL 点dll运行

vs对除数为0 不同操作系统有优化有的不报异常 自己抛异常

throw new Exception(String.Format("除数不为0,错误发生于{0}",DataTime。Now));

double num1;         double.TryParse("123",out  num1);

continue 跳出本次循环到while循环顶部,继续循环    break 跳出while循环执行循环后面的代码。

计算器工厂模式

基类抽象类,派生类加减乘除,工厂装配类静态

原文地址:https://www.cnblogs.com/ggg34674/p/2582206.html