重写重载:
重写:是继承时对父类的方法重写该方法内容,方法类型是不变的,即返回类型,方法名字,参数都不变。值得注意的是可以改变权限,只能提高不能降低
重载:是一个类中有多个名字相同的方法,不考虑返回类型和参数名字,只考虑参数个数和参数类型。
访问权限:
依次排下来是 public、protected、友好的、privated. 不能用protected和privated修饰类。
protected和友好的差别如下:当父类和子类不在同一个包中,子类除了会继承public修饰的函数和变量之外,还会继承protected的,但是友好的就不会了
注:友好的就是啥都不写,默认友好权限。
子类继承父类时,如果父类有无参数的构造函数会自动调用,如果没有需要在子类构造函数的第一条写super();调用其带参数的构造函数。 因为子类是不继承构造函数的。
接口
接口中的方法一定是public abstract的,实现接口的非抽象类必须明确的写出public,因为不能降低访问权限。
接口和abstract的区别是 接口只能有常量,不能有变量;接口的所有方法都是abstract的。
内部类
内部类就是在类里面的类,其不可以申明类方法和类变量,仅供其内嵌类使用。是唯一可以被static修饰的类
Exception和Error的区别
两者都是Throwable的子类
-
Exception:是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。
Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。
不检查异常就是所谓的运行时异常,类似 NullPointerException、ArrayIndexOutOfBoundsException 之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求。 -
Error:由 JVM生成并抛出,大多数错误与代码编写者所执行的操作无关。例如,Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。