325工厂模式和面向对象知识点总结(有点乱凑合看)
工厂模式我的理解:::::
工厂 父类 子类 程序main调用工厂 工厂判断类型 根据判断的类型返回子类对象 子类对象中的方法重写父类方法中的虚方法。 利用到了面向对象中的多态
工厂加工各种产品 工厂加工的产品又分为很多种类 父类是工厂加工的产品的总的项目类型 各个产品类型 就是子类 它们都属于父类
用户订购商品从工厂 工厂查找(判断)大分类 (父类 ) 然后这些大分类 自动调用其所述的分类(子类) 在父类中有加工这件产品的虚方法(virtual) 子类中也有相应的重写方法(override) 工厂:判断: 父类 fu=new 子类(); 使用哪个子类 返回给用户 工厂判断
父类中实现字段和属性 子类中继承父类构造函数和字段属性
面向对象
面向对象知识点
1.什么是面向对象
1>面向对象和面向过程的关系 相辅相成 面向对象是对面向过程的封装
2>如何使用面向对象 Random r=new Random();//根据系统时间生成随机数
3>类,对象,实例的概念 类就是一个模板 对象就是实例的泛指
4>面向对象的特征:继承,封装和多态(c系语言的面向对象的特征)
封装性:方法是过程的封装,属性是对字段的封装,类是对对象的封装
继承性:解决代码的冗余,有利于程序的扩展,真正作用是代码的复用(用winform窗体理解),为了实现多态
利用设计图纸的问题理解继承
多态性:一个行为有多个结果 同一个动作针对不同的对象有不同的表现 插u盘的例子
5>实现性:
封装:类怎么写,成员有哪些,构造方法的意义,访问修饰符
继承:如何进行继承,继承的结果,构造方法的执行过程,thisbase的含义 历史转换原则
多态:什么是多态,如何实现多态 new(隐藏基类方法,做类库控制版本信息)和override的关系
类前面的修饰符值在别的程序集是否可以访问
默认不写是internal,表示内部的 不能被外界访问
字段用来描述对象的特征,是类型中唯一可以存储数据的地方 默认的是private
属性是为访问字段用的 属性实际就是简化了的方法 ctrl+r然后按ctrl+e快捷键
方法 有static是静态方法,没有static是实例方法
构造方法的意义 public 类名(){} 初始化数据
默认的字段初始化 数字类型为0 ,类类型等为null 字符类型为‘\0’ bool类型为false
构造方法支持重载,如果为类添加了构造方法,无论什么构造方法,都会导致午餐构造方法不再自动生成
“男女”[new Random。next(2)]
类 public internal
成员 public private
继承 public class subclsaa:baseclass
{} 继承是类继承自类 汽车的设计图纸理解继承概念
由于子类中没有任何代码,它们除了类型不同,其实是一样的
继承中类型决定了可以访问的方法 继承的类中有自己独有的东西
继承的特征:传递性(父类具有的子类也有),单根性(只能单继承,多重继承要继承接口),object根类的特征(所有的类继承自object)
继承方法的执行过程(难)先从根类到自己逐步执行构造方法
08构造方法的执行顺序 默认情况子类在创建的时候会自动的调用父类的构造方法
无参构造方法一旦重载, 在子类构造方法后面使用base()使用父类构造方法,通过传参数告诉程序应该调用父类的哪一个重载
this和base的含义 this当前的 base 父类的
this 成员的访问
构造方法的调用
历史转换原则 子类可以直接赋值给父类变量
父类可以强制类型转换为对应的子类对象
is bool值 变量 is 类型
as 类型对象 变量 as 类型
多态:什么是多态 男人的例子:人不变但是所处环境决定其状态(员工,丈夫)
usb的例子 行为不变 抽象层不变 实质变化 实质是什么
如何实现多态 用new隐藏基类成员 ,调用时看类型,类型决定方法是谁提供的