Java oop中提问时要能够答出来的问答题

1.什么是对象,什么是类,什么是面向对象
现实世界中具体存在的事物成为对象
将现实世界中的具有共同特征的事物进行抽取后,将共有的特征转化的java类
将具体存在的事物转化为java类的过程称为面向对象
2.面向对象的三大特征,并简述使用该特征解决什么样的问题
封装:解决了属性安全性的问题
继承:解决了代码的重用性问题
多态:解决了代码扩展性的问题
3.什么是方法的重载(overload)。
在同一个类中具有多个名称相同的方法,但是方法的参数不同,编译器在调用的时候根据用户传入的参数决定使用哪个方法
4.什么是构造方法,在什么时候执行构造方法,构造方法可以重载吗?
在类中方法名称和类名相同,但是没有返回值的方法
在创建对象的时候执行构造方法
可以
5.什么是方法重写(Overwirte)
在具有继承关系的两个类中,方法名称,参数和返回值类型完全相同的两个方法构成重写
6.重写和重载的区别
相同点:名称相同
不同点:重载和参数要求不同,重写要求参数也要完全相同
重载对于返回值类型没有影响,重写要求返回值类型也要完全相同,重载是在同一个类中进行,重写要求在具有继承关系中的两个类中进行
7.Java中的访问修饰符并解释其范围
private:同一个类中
缺省的:同一个包中
proteced:同一个包中或者具有继承关系的两个类中
public:任何位置
8.关键字final可以修饰一个类,一个方法,一个变量,各起什么作用
修饰类:该类是不可继承
修饰方法:该方法不可重写
修饰变量:该变量不可以再次赋值
9.什么是对象数组
使用声明的对象组成的数组,不再是存储的基本类型,而是引用类型
10.什么是继承,java可以多继承吗?什么是多重继承?
在已有的类中派生出新的类,新的类具有已有的类的属性和行为,并可以具有新的特征
不可以
已有的类派生出新的类,而又有新的类继承自派生出的类,新的类具有已有的类和派生类的特点,比如B继承A,C继承B,C具有A和B的两个类的特点
11.什么是多态?静态多态和动态多态的区别
同一个方法根据传入内容的不同,执行不同的功能
静态多态成为重载,在编译前就可以确定执行那个方法
动态多态需要具有继承或接口关系,在编译的时候确定执行的是哪个方法
12.什么是抽象类,有哪些特点?
使用abstract声明的类成为抽象类
特点:
1.抽象类不能够直接使用,必须有子类继承
2.抽象类中可以有普通方法,也可以有抽象方法
3.子类继承抽象类后必须实现抽象类中的所有方法,否则该类还是一个抽象类
13.abstract class和interface有什么区别。
abstract class:声明抽象类
interface:声明接口
抽象类用于继承,接口用于实现
子类只能够继承一个抽象类,但可以实现多个接口
抽象类中可以有抽象方法和普通方法,也可以有普通属性和抽象属性,接口中的属性默认为final,方法默认为abstract