Java基础复习笔记
1、面向对象的三大特征是什么?
答: 封装、继承、多态
1、封装(Encapsulation)
封转是指属性私有化
- 根据需要提供setter和getter方法来访问属性
- 隐藏具体属性和实现细节,仅对外开放接口
- 控制程序中属性的访问级别
目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员
2、继承(Extend)
继承是指将多个相同的属性和方法提取出来,新建一个父类
- java中一个类只能继承一个父类,且只能继承访问权限非private属性和方法
- 子类可以重写父类中的方法,命名与父类中同名的属性
目的:代码复用
3、多态
多态(Polymiorph)可以分为两种:设计时多态、运行时多态
设计(编译)时多态:即重载(Overload),是指java允许方法名相同而参数不同(返回值可以相同也可以不同),同一个类中允许存在一个或多个以上的同名函数,只要参数类型或参数个数不同即可
运行时多态:即重写(Override)必须是在继承体系中,子类重写父类方法,JVM运行时根据调用该方法的类型决定调用那个方法
目的:增加代码的灵活度
总结:
1、java中应尽量减少继承关系,以降低耦合度
2、使用多态时,父类在调用方法时,优先调用子类的方法,如果子类没有重写父类的方法,则再调用父类的方法
3、java访问控制符作用范围表:
本类 | 本包 | 子类 | 外部包 | |
---|---|---|---|---|
public | ✓ | ✓ | ✓ | ✓ |
protected | ✓ | ✓ | ✓ | X |
default | ✓ | ✓ | X | X |
private | ✓ | X | X | X |
✓:可以访问 X:不可访问
2、继承的两个主要作用是什么?
答:代码复用和建模
3、JAVA中实现继承是哪个关键词?
答:extends
4、JAVA中的类继承,是单继承还是多继承?JAVA中其他地方有多继承吗?
答:类是单继承,接口可以多继承
5、定义类时,没有使用extends,它的父类是什么?
答:Object类
6、组合和继承的关系如何理解?
答:1、它们都可以实现代码的复用;2、继承处理的是is-a关系 组合处理的是has-a 关系
7、方法重写和方法重载有什么区别?
答:方法重载:就是在同一个类中,方法的名字相同,但参数个数、参数的类型或返回值类型不同!
方法重写:它是指子类和父类的关系,子类重写了父类的方法,但方法名、参数类型、参数个数必须相同!
8、final关键字修饰变量、方法、类,都分别表示什么含义?
答:修饰变量代表是常量,修饰方法不能被重写,修饰类不能被继承
9、一个类定义是时,没有使用extends,则它的父类是?
答:Object类
10、Object中的toString()方法默认返回的字符串是什么含义?
答:类名@哈希地址
11、super关键字的含义是什么?
答:直接父类对象的引用
12、多态指的是什么?
答:多态指的是同一个方法调用,由于对象不同可能会有不同的行为;多态是方法的多态,不是属性的多态(多态与属性无关);父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了
13、多态的三个必要条件是什么?
答:继承,方法重写,父类引用指向子类对象
14、抽象方法是什么?如何定义?
答:使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范“,就是告诉子类必须要给抽象方法提供具体的实现。
15、抽象类可以包含:属性、方法、构造方法;但是,我们不能通过抽象类创建对象
16、接口定义规范,普通类定义实现,抽象类又有规范又有实现。
17、JDK1.8(含)以后,接口中不只可以定义:常量、抽象方法。还能定义默认方法、静态方法。
18、接口中,默认方法和抽象方法有什么区别?
答:抽象方法必须要被实现,默认方法不是。作为替代方式,接口可以提供默认方法的实现,所有这个接口的实现类都会通过继承得到这个方法。
19、接口中,默认方法和静态方法有什么区别?
答:静态方法直接从属于接口,可以通过接口名调用;
20、JAVA中,类是单继承,接口是多继承。
21、写出八种基本数据类型对应的包装类的名字。
答:byte-Byte;int-Integer;short-Short;char-Character;float-Float;double-Double;boolean-Boolean;long-Long
22、Number类和数字包装类的关系是什么?Number类是 抽象类吗?
答:Number类是数字包装类的父类,Number是抽象类
23、包装类的两个基本作用是什么?
答:1、作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[]、集合等的操作。
2、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化)