SE部分自己需要学习复习的
面对对象
面向对象主要的特征有四个:抽象,继承,封装,多态.
1.抽象:简单说就是抽取对象的共性,就一类对象来说,它们可能有多种多样,但它们之间还有些共性的东西,就是将这些共性抽取,并总结到一起.抽象抽取了对象的固有属性和行为属性两种.用人做例子,固有属性就是想肉体上的所有特征,行为属性就是这个肉体能做到的各种动作.
2.继承:为了更有效的利用已经存在的资源, 可以将之采用继承的方式直接允许新的对象去使用这些资源(属性,方法,....).但继承也是有限制的,有一下几个特性:
a.继承只支持单继承,但可以通过实现多接口来达到多继承的目的
b.子类只能继承父类非私有的部分(public和protected)
c.如果子类中有与父类重名的属性,则子类的会覆盖父类的.
d.如果子类中有与父类重名的方法(相同的方法名 相同的参数列表),则子类会覆盖父类方法.
3.封装:这个就是为了保护对象的属性与方法,不行因为外部的干涉影响现有对象的状态.就是对属性和方法进行自私有化(private)并在对象的内部添加get和set等方法,通过这些接口来使外部可以调用相关的属性与方法.
4.多台:这个理解有些困难,因为对象有共性就会有差异,在共性的基础上表现的差异就是多态了,
实现多态的三种形式
1.Pet pet = new Dog();---父类引用但new子类对象
2.使用父类作为方法形参实现多态 public void feed(Pet pet){}
3.使用父类作为方法返回值实现多态 public Pet getPet(int id){return pet}
父类对子类也有限制
父类对象不能直接调用子类独有的方法
父类对象可以调用父类子类都有的方法(子类重写的父类的方法)---调用子类的方法
2018.8.19到这里 明天继续
抽象和接口的区别