大特性
- 封装性
- 继承性
- 多态性
- ( 抽象性)
理解面向过程和面向对象
- 面向过程-考虑怎么做
- 面向对象-考虑谁来做
重载(Overload)
- 在一个类里面,方法名字相同,而参数不同。返回值可同可不同
- 每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
- 最常用的地方就是构造器的重载。
- 注意和重写(Override)的区别
重写(Override)
- 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写。
- 注意和重载(Overload)的区别
super关键字
子类中调用父类的东西(属性、方法···)
单例模式
- 饿汉式
class Bank {
// 1.私有化类的构造器
private Bank() {
}
// 2.创建对象
private static final Bank instance = new Bank();
// 3.提供方法返回类的对象
public static Bank getInstance() {
return instance;
}
}
- 懒汉式
class Order {
// 1.私有化类的构造器
private Order() {
}
// 2.创建对象
private static Order instance = null;
// 3.提供方法返回类的对象
public static Order getInstance() {
if (instance == null) {
instance = new Order();
}
return instance;
}
}
- 两者区别
饿汉式:好处-线程安全;坏处-对象加载时间过长
懒汉式:好处-延迟对象创建时间;上方代码弊端-线程不安全(可优化)
【例题】
-
重写与重载的区别
-
概念
-
两者的规则
-
重载:不表现为多态性
重写: 表现为多态性※ 不是晚绑定,就不是多态 ※
-
-
==和equals的区别
- ==可用来比较基础类型,也可比较引用类型。基本类型用来比较值,引用类型用来比较内存地址
- equals是一个方法,若该方法不被重写则与==无差别。
- 通常情况下,会重写equals方法,用来比较类中的属性是否相等。
-
多态性的理解
- 实现代码的通用性
- 抽象类、接口的使用
-
多态是编译时行为还是运行时行为
- 运行时行为
-
抽象类和接口的异同
同:
都包含抽象方法,不能实例化
不同:
1)定义之间的解释(抽象类-属性、构造器···;接口-常量、抽象方法、静态方法(java8)、默认方法(java8)、私有方法(java9))
2)类-单继承;接口-多继承