大话设计总结

来源:互联网 发布:爱普生r390清零软件 编辑:程序博客网 时间:2024/06/08 01:34

验收设计模式的时候,超强师傅提出这样几个问题:

1.代码实现关联关系、继承

2.对接口、实现的理解

3.重载、重写的实现

当然,还跟我们讲了好多,先总结一下这几天想明白了的几个知识点。

继承关系:子类继承父类

(一)继承
1.子类拥有父类非private的属性和功能。
2.子类具有自己的属性和功能。
3.子类可以以自己的方式实现父类的功能。(方法重写)
举例说明:
abstract class  Father    {        protected string name;//定义变量        public Father(string name)//构造函数,用于初始化        {            this.name = name;        }        public abstract  void teacher();//父类有teacher的方法    }    class Son : Father    {        public Son(string name):base(name)//子类继承父类        {            this.name = "dyh";        }        public override void teacher()//子类重写父类方法        {            Console.WriteLine("dyh");        }        public void study()//子类可以有自己的新方法        {            Console.WriteLine("fkg");        }    }


(二)实现(通过重载或重写的方法)
1、主要是针对接口而言的,实现接口。接口是对共同行为的抽象。
2、抽象类:是对同一类的抽象
举例:猫、狗、鱼同属于动物,因而动物可以作为抽象类;如果,鱼可以潜水、潜水艇也可以潜水,那么它们可以继承“可潜水”这个接口。
3.如果行为跨越不同类的对象可以使用接口,同一类对象,可以继续使用抽象类

interface IWater{}

定义接口,父类引用指向子类对象。所以经常听说,面向接口编程,听师傅讲了好久,自己还没有完全消化,写不出成文的文章。

需要注意的是:抽象类、接口都不可以被实例化。因而在定义时需要特别注意一下。


(三)重载、重写

重载:在同一个类里面,可以调用同一方法,但是具体的类型是不一样的;

重写:子类继承父类,通过重写实现。override关键字

(参考上面代码)


小结:设计模式中面向对象的思想是个老生长谈的问题了,关于面向对象的三个特征:继承、封装和多态。也是需要在实践中不断深化认识。还有就是UML几种关系:关联、泛化、实现、依赖。只是概念的东西理解了还不够,需要亲自动手动脑敲个小例子。其实,大话设计这个项目早就结束了,当时只是理解了某些概念,眼高手低,照葫芦画瓢,只是照着课本把例子敲了一遍,而没有学会举一反三,没有真正的把自己的理解体现在代码中。关于“父类引用指向子类对象”还需要再消化消化,多和同学交流交流,之后将完善这篇博客。
































0 0