- 什么是面向对象?
面向对象是一种符合人类思维逻辑习惯的编程思想,在现实生活中存在各种各样的事务,事务与事务之间存在关系,在程序中通过对象来描述现实中的事务,对象的关系来描述事务之间的关系。
面向对象专注将解决问题的步骤,按照一定的规则交由多个对象,调用不同的方法协作组合完成。
面向对象的三大特征:封装、继承、多态。- 封装
隐藏具体的实现细节,对调用者透明,提高安全性。
封装有2种:方法封装和属性的封装。
属性的封装的三个步骤:- 属性私有化
- 提供settter/getter方法
- 加入逻辑控制语句(非必须)
- 继承
主要目的是复用代码。将子类共有的部分抽取出来,往上提一级,交由父类来实现,通过子类继承。
继承用extends关键字。 - 多态
某种行为具备不同的形态的能力。
实现多态的三大必要条件:继承、重写、父类的引用指向子类的实例。(向上转型)
- 封装
Person person = new Student();
- 方法重写和方法重载
- 方法重载
- 在同一个类中
- 方法名相同
- 参数列表(顺序、个数、数据类型)不同
- 与访问修饰符和返回值无关
- 方法重写
- 子类继承父类中
- 方法名相同
- 参数列表(顺序、个数、数据类型)相同
- 返回值类型是父类指定的类型或其子类
- 访问修饰符不能严于父类
- 方法重载
- 抽象类和接口的区别
区别:- 抽象类
- 抽象类通过abstract关键字描述
- 抽象类可以有构造方法
- 抽象类可以有普通方法和抽象方法
- 抽象类中有变量和常量
- 单继承
- 接口
- 接口通过interface关键字
- 接口没有构造方法
- 接口只有抽象方法(在jdk1.8以前是这样)
- 接口中只有常量(final)
- 接口是多实现
相同点:
- 抽象类和接口都不能实例化
- 如果子类继承抽象类或实现接口,那么父的抽象方法子类要重写,如果不重写,子类也要变成抽象类。
- 抽象类
- this和super的区别?
- this
this指的是当前对象。
this():调用本类的构造方法
this.属性名:调用本类的属性
this.方法名:调用本类的方法 - super
super调用父类的属性和方法。(能被继承过来)
super():访问父类的构造方法
super.属性名:访问父类的属性
super.方法名:访问父类的方法
- this
- static关键字
static表示静态的意思,它可以修饰属性和方法。- 修饰属性:给多个对象共享数据。
- 修饰方法
static修饰的属性和方法既可以通过类名.属性或类名.方法名来调用,也可以通过对象名.属性或对象名.方法名来调用。
no static修饰的属性和方法可以通过对象名.属性或对象名.方法名来调用。
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦