最近在做一个游戏时,发现自己基础知识还是有点欠缺,决定重新拾起基础,一步一个脚印慢慢来

 

继承:就是面向对象中类与类之间的一种关系。继承的类称为子类、派生类,而被继承类称为父类、基类或超类。通过继承,使得子类具有父类的属性和方法,同时子类也可以通过加入新的属性和方法或者修改父类的属性和方法建立新的类层次。 继承机制体现了面向对象技术中的复用性、扩展性和安全性。为面向对象软件开发与模块化软件架构提供了最基本的技术基础

 

继承的优点:继承可以防止子类中出现重复的程序代码  

 

判断某物是否应该要继承另一物时,用IS-A来检验,         例如:三角形是一个多边形,外科医生是一个医生

 

善用继承原则:1、当某个类会比其父类更有特定意义时使用继承

      2、在行为程序(实现程序代码)应该被多个相同基本类型类所共享是,使用继承        

例如:方形、圆形、三角形都需要旋转和播放声音,因此将这些功能放在他们的父类显然是很合理的

 

方法覆盖:当你想要在子类中想要自己定义父类某方法时,就覆盖父类的此方法。Ps:如果子类还打算引用父类的方法然后再加上额外的行为,可以用super关键字来取用父类

 

多态:多态是指由于继承和重写机制,相同类型的对象调用相同的方法,得到的结果可能不一样

 

另外给出几个词的解释:

 

抽象类:如果不想让某个类被初始化,就以abstract这个关键词将它标记为抽象的;抽象的类可以有抽象和非抽象的方法;如果类带有抽象的方法,则此类必定标识为抽象的;抽象的方法没有内容,它的声明是以分号结束;抽象的方法必须在具体的类中运行。

 

接口:接口就好像是100%纯天然的抽象类。以interface这个关键词取代class来声明接口。实现接口时要使用implements这个关键词。

 

到底要如何判断应给是设计类、子类、抽象类或接口呢?

1、如果新的类无法对其他的类通过IS-A测试时,就设计部继承其他类的类。

2、只有在需要某类的特殊化版本时,以覆盖或增加新的方法来继承现有的类。

3、当你需要定义一群子类的模板,又不想让程序员初始化此模板时,设计出抽象的类给他们用。

4、如果想要定义出类可以扮演的角色,使用接口。