面向对象的三大特征主要为:封装、继承、多态
封装是指的是类的内部信息进行隐藏,一般是指对类内部的属性进行私有化,外部无法直接访问或影响内部的属性,只能通过特定的方法对封装的内容进行访问,提高了代码的安全性
继承是指子类继承父类,子类可以获得父类的全部属性和方法,且可以拥有一些父类所没有的方法和属性,提高了代码的复用性和逻辑性。
多态指的是类与类的关系,多态必备三要素:继承、重写、父类引用子类对象,对于方法来说,非静态方法遵循编译看左边,运行看右边,静态方法遵循编译看左边运行看右边,对于属性来说是编译看左边,运行看左边
1、封装要点:
类的属性的处理 :
一般使用private. ( 除非本属性确定会让子类继承 )
提供相应的get/set 方法来访问相关属性 . 这些方法通常是 public ,从而提供对属性的读取
操作。 (注意:boolean 变量的 get 方法是用: is 开头 ! )
一些只用于本类的辅助性方法可以用 private
希望其他类调用的方法用 public
2、继承:
super关键字
super是直接父类对象的引用。
可以通过super 来访问父类中被子类覆盖的方法或属性
方法名、形参列表相同。
返回值类型和异常类型,子类小于等于父类。
访问权限,子类大于等于父类
构造方法调用顺序:
根据 super 的说明,构造方法第一句 总是: super(…) 来调用父类对应的构造方法。
先向上追溯到 Object ,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。
对象的比较—==和equals()
==:
比较两基本类型变量的值是否相等
比较两个引用类型的值即内存地址是否相等,即是否指向同一对象。
equals() :
两对象的内容是否一致
3、多态:
引用变量的两种类型:
编译时类型(模糊一点,一般是一个父类)
由声明时的类型决定。
运行时类型(运行时,具体是哪个子类就是哪个子类)
由实际对应的对象类型决定。
多态的存在要有3 个必要条件:
要有继承,要有方法重写,父类引用指向子类对象