一点感想

     作为面向对象的程序设计者,应该掌握的一条原则就是,应该“针对接口编程,而不是针对实现编程”,我认为,这句话包含两层意思,
    一是针对类层次来说的,由于现实世界的复杂性,如果要对现实世界进行抽象的话,必然要涉及继承,因为这样不仅仅能保持程序设计的逻辑性,还可以实现一定程度上的软件复用。但是如果仅仅使用继承的,则会因为父类硬塞给子类它的属性与操作,而必然限制了子类的实现上的自由。
   二、虚函数与抽象类,这两个概念是有区别的,但是他们都阐述了同一个原则,那就是针对接口编程,这里涉及到“运行时关联”这一概念,大概意思就是针对不同类实例对相同类型接口的实现调用,并不是静态的确定的,而是在运行时动态的确定的。这样,子类就不用机械的沿用父类的操作,而可以自由的针对需要来定义并调用相同类型的操作。
   最后再来看一下虚函数与抽象类的区别,虚函数,基本特征是在函数定义前有virtual关键字,同时完成的功能是子类可以对该操作进行覆盖。而抽象类是含有纯虚函数的类,纯虚函数不同于虚函数,它不能在类中被实现,而必须等待子类来实现它,因此抽象类又可以叫做接口类,它与虚函数一起诠释了面向对象程序设计的多态性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值