1.以前如果类里面有很多一致的代码,考虑将代码提取到工具类,这个工具类和当前类的关系不大
2.如果提取的代码和当前类的代码关系大,或者具有组合或聚合关系
3.如果子类继承父类,子类可以直接调用父类的方法,但是,不能调用私有方法
4.子类可以调用父类的protected受保护的:修饰的 属性或者方法
5.如果子类和父类的方法一致,则调用子类的方法时,则执行子类的方法
6.子类和父类方法一致,其实是对父类的方法进行重写(覆盖)
7.重写:子类扩展了父类的相同方法
1:方法名相同
2:个数必须相同
3:参数类型是否相同?必须
4:和返回值数据类型是否相关?可以不一致,但是子类必须小于等于父类
5.权限修饰符,子类必须大于等于父类
一般判断两个方法是否重写用注解@Override
简单理解重写:父类和子类方法一样
8.重载:
1:方法名相同
2:参数类型和个数不同
3:和返回值类型无关
-----------------
重载,不局限于同一个类
9.权限修饰符:四个,可不可以修饰类?
类只能是默认不写和public修饰:
创建类的主要目的?为了创建对象,让别人调用
10.基类,直接父类,超类,超越父类的类
11.Object,所有类的父类或者超类,最顶端的类,所有引用类型默认继承Object类
12.面试会问?Object的常用方法?
1:getClass() 用于反射,得到当前类
2:hashCode() 打印地址
3:equals() 判断地址值是否相等
4:clone() 克隆,拷贝,浅拷贝和深拷贝3
5:toString() 将对象转换为字符串,所有对象默认都是toString
6:notify() 唤醒线程 notifyAll()唤醒所有线程
7:wait() 线程等待
8:finalize() 垃圾回收的时候会用

13.以后写代码尽量:解耦:不要有太强的耦合性
14.变量的访问:局部变量--》成员变量--》父类--》超类 :就近原则
15.this()只能在构造方法里面调用,而且放在第一行
16.子类的构造方法(无论是否有参数)默认写了一个无参数的父类的构造方法:super();
17.java中是否支持多继承,支持,接口可以支持
18.Java接口是属于类吗?属于类
19.Java接口是对抽象类的封装,抽象类是属于类
20.Java普通类不能支持多继承,只有接口才支持
------------------------------------------
修饰符:
权限修饰符 访问修饰符
public 所有类都可以访问
private 只能当前类可以访问
protected 一般用于子类访问父类
默认不写 当前包可以访问
状态修饰符 非访问修饰符 特征修饰符
final 关键字 最终的
修饰方法:方法不能被重写:如果父类不想子类重写(修改)方法,则用final修饰
修饰变量:表示是常量,不能再次赋值:定义变量的时候,一定要赋一个初始值,
常量,只能使用,不能再次赋值
修饰类:不能被继承,不能有子类继承,但可以作为其他类的子类
如果final修饰的是引用类型:则不能改变当前的引用地址,可以改变里面的内容
static 静态:简单理解为数据共享
静态方法里面不能直接调用非静态属性或方法,只能通过对象.属性,对象.方法名
普通方法可以调用静态方法和非静态方法
21.static一般用于工具类
一般构造方法需要私有:
私有后就不会被别人创建多个对象,占用内存空间
成员变量和方法都用static修饰即可
22.代码块在创建对象时,执行
23.静态代码块在编译代码时执行,静态代码块只要用到了类,就会执行,
代码块只能创建对象调用构造方法时才执行
代码块在构造方法之前执行
静态代码块先于代码块执行
代码块先于构造方法执行