已经是最新一篇文章了!
已经是最后一篇文章了!
第07章:随堂复习与企业真题(面向对象-进阶)
宁为百夫长,胜作一书生。
第07章:随堂复习与企业真题(面向对象-进阶)
一、随堂复习
1. this关键字的使用
-
this调用的结构:属性、方法;构造器
-
this调用属性或方法时,理解为:当前对象或当前正在创建的对象。
public void setName(String name){ //当属性名和形参名同名时,必须使用this来区分 this.name = name; } public Person(String name){ this.name = name; }
-
this(形参列表)的方式,表示调用当前类中其他的重载的构造器。
2. 面向对象的特征二:继承性
- 继承性的好处
- 减少了代码的冗余,提高了复用性;
- 提高了扩展性
- 为多态的使用,提供了前提。
- Java中继承性的特点
- 局限性:类的单继承性。后续我们通过类实现接口的方式,解决单继承的局限性。
- 支持多层继承,一个父类可以声明多个子类。
- 基础:class A extends B{}
- 理解:子类就获取了父类中声明的全部的属性、方法。可能受封装性的影响,不能直接调用。
3. 方法的重写(override / overwrite)
- 面试题:方法的重载与重写的区别?
- 方法的重载:“两同一不同”
- 方法的重写:
- 前提:类的继承关系
- 子类对父类中同名同参数方法的覆盖、覆写。
4. super关键字的使用
- super可以调用的结构:属性、方法;构造器
- super:父类的
- super调用父类的属性、方法:
- 如果子父类中出现了同名的属性,此时使用super.的方式,表明调用的是父类中声明的属性。
- 子类重写了父类的方法。如果子类的任何一个方法中需要调用父类被重写的方法时,需要使用super.
- super调用构造器:
- 在子类的构造器中,首行要么使用了”this(形参列表)”,要么使用了”super(形参列表)”。
5. (熟悉)子类对象实例化的全过程
- 结果上来说:体现为继承性
- 过程上来说:子类调用构造器创建对象时,一定会直接或间接的调用其父类的构造器,以及父类的父类的构造器,…,直到调用到Object()的构造器。
6. 面向对象的特征三:多态性
-
广义上的理解:子类对象的多态性、方法的重写;方法的重载
狭义上的理解:子类对象的多态性。
- 格式:Object obj = new String(“hello”); 父类的引用指向子类的对象。
- 多态的好处:减少了大量的重载的方法的定义;开闭原则
- 举例:public boolean equals(Object obj)
- 多态,无处不在!讲了抽象类、接口以后,会有更好的理解。
- 多态的使用:虚拟方法调用。“编译看左边,运行看右边”。属性,不存在多态性。
- 多态的逆过程:向下转型,使用强转符()。
- 为了避免出现强转时的ClassCastException,建议()之前使用instanceOf进行判断。
7. Object类的使用
- 根父类
- equals()的使用
- 重写和不重写的区别
- 面试题: == 和 equals()
- toString()的使用
- Object中toString()调用后,返回当前对象所属的类和地址值。
- 开发中常常重写toString(),用于返回当前对象的属性信息。
8. 项目二:拼电商客户管理系统
- 编写两个类:Customer 、 CustomerList类(封装了对数组的增删改查操作)
二、企业真题
2.1 继承性
1. 父类哪些成员可以被继承,属性可以被继承吗?可以或者不可以,请举下例子。(北京明**信)
父类的属性、方法可以被继承。构造器可以被子类调用。
2.2 重写
1. 什么是Override,与Overload的区别(顺*、软**力、明*数据、阳*科技、中*软)
略
2. Overload的方法是否可以改变返回值的类型?(新*陆)
public void method(int i){}
public int method(int j,int k){}
3. 构造器Constructor是否可被override?(鸿*网络、深圳德**技、航**普)
不能!构造器可以重载
4. 为什么要有重载,我随便命名一个别的函数名不行吗?谈谈你是怎么理解的。(腾*)
见名知意。
2.3 super关键字
1. super和this的区别(蚂**服)
把两个关键字各自的特点说清楚。
2. this、super关键字分别代表什么?以及他们各自的使用场景和作用。(北京楚*龙)
略
2.4 多态
1. 谈谈你对多态的理解(三*重工、江*智能、银*数据、君*科技)
类似问法:
> Java中实现多态的机制是什么(国*电网)
> 什么是多态?(上*银行)
> Java中的多态是什么意思?(贝*)
略
2. 多态new出来的对象跟不多态new出来的对象区别在哪?(万*智能)
Person p = new Man(); //虚方法调用。屏蔽了子类Man类特有的属性和方法。
Man m = new Man();
3. 说说你认为多态在代码中的体现(楚*龙)
无处不在!
略
2.5 Object类
1. ==与equals的区别(拓*思)
类似问法:
> 两个对象A和B,A==B,A.equals(B)有什么区别(华油**普)
略
2. 重写equals方法要注意什么?(安**网络科技)
- 明确判定两个对象实体equals()的标准。是否需要所有的属性参与。
- 对象的属性,又是自定义的类型,此属性也需要重写equals()
3. Java中所有类的父类是什么?他都有什么方法?(阿*校招)
相关问题:
> Object类有哪些方法?(恒*电子)
版权声明:如无特别声明,本站收集的文章归 HuaJi66/Others 所有。 如有侵权,请联系删除。
联系邮箱: GenshinTimeStamp@outlook.com
本文标题:《 第07章:随堂复习与企业真题(面向对象-进阶) 》