什么是重写和重载?它们之间有什么区别?
重写:
- 有父子级关系
- 子类重写父类的方法
- 方法名一致
- 返回值相同,或成为其子类
- 参数列表相同
- 访问修饰符不能严于父类
重载:
- 在同一类中
- 方法名相同
- 参数列表不同
- 返回值无关
- 访问修饰符无关
区别:
方法重写是子类对父类的方法进行重新实现,实现的功能和父类的方法名、参数、返回类型等基本相同;而方法重载是在同一个类中定义多个方法,方法名相同但参数列表不同,实现的功能可以有所不同
抽象类和抽象方法的区别?
抽象类:
- 抽象类中可以有普通方法和抽象方法
抽象方法:
- 抽象方法必须被子类重写
- 或子类也是抽象类
- 抽象方法没有代码块
- 抽象方法所在类必须是抽象类
类,抽象类和接口的区别及联系?
区别:
- 类是一个具体的实例,抽象类和接口都是一个抽象的概念
- 类可以被实例化,抽象类和接口不能被实例化
联系:
- 类抽象类和接口都能被继承
- 一个类只能继承一个抽象类
- 但是可以实现多个接口
- 抽象类中可以有普通方法
- 接口中只能有抽象方法
实现多态的条件?
- 有父子级关系
- 子类重写父类的方法
- 父类的引用指向子类的对象
线程的生命周期?
-
声明状态
-
就绪状态
-
运行状态
-
阻塞状态
-
死亡状态
多线程的概念?
一个程序中同时运行多个线程,每个线程可以执行不同的任务
不能被子类继承的父类成员?
- 父类被private修饰的属性和方法
- 父类的构造方法
- 修饰符是默认的,并且和子类不在同一包中
什么是同步?Java中有哪些方式可以实现同步?
同步指的是协调多个线程之间的执行顺序,确保它们按照一定的顺序、安全地访问共享资源
实现同步:
- 在同步方法的访问修饰符后加上
synchronized
关键字 - 将同步方法放在
synchronized
代码块中
什么是静态方法?什么是实例方法?二者有何区别?
静态方法:
- 被
static
关键字修饰的方法
实例方法:
- 类里面的普通方法
区别:
- 静态方法可以通过类名直接调用
- 实例方法必须通过对象来调用