面向对象编程思想总结

面向对象的理解

从字面意思理解,面向,就是拿、找。对象,表示能干活的东西。整句话的含义就是拿东西做对应的事情。

在现实生活中,我们要做一件事情,不是每次都要创造一个对象来做,比如洗衣服会直接用洗衣机洗,扫地可以用扫地机器人洗,聊天直接用手机聊天。都借助于一个对象来完成,而不是临时造一个事物。我们面向对象编程也是这样,要做一个功能,可以直接用一个对象,使用它的属性和方法来完成。而如果没有对象,那我们就会创造一个类,封装好它来使用。

类:是对象共同特征的描述。
对象:是真实存在的具体东西。

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

如果不能继承一个方法,则不能重写这个方法。

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。
重载是为了该类扩展功能适应各种可能发生的情况;重写是为了适应子类的一种情况;
要想调用父类中被重写的方法,则必须使用关键字super。

20171102-1.jpg

多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作

dt-java.png
  1. 消除类型之间的耦合关系
  2. 可替换性
  3. 可扩充性
  4. 接口性
  5. 灵活性
  6. 简化性

多态存在的三个必要条件
继承
重写
父类引用指向子类对象

问答易错点
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

• 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
• 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。

你可能感兴趣的:(面向对象编程思想总结)