【java】一些基础小知识

重写重载:

重写:是继承时对父类的方法重写该方法内容,方法类型是不变的,即返回类型,方法名字,参数都不变。值得注意的是可以改变权限,只能提高不能降低
重载:是一个类中有多个名字相同的方法,不考虑返回类型和参数名字,只考虑参数个数和参数类型。

访问权限:

依次排下来是 public、protected、友好的、privated. 不能用protected和privated修饰类。
protected和友好的差别如下:当父类和子类不在同一个包中,子类除了会继承public修饰的函数和变量之外,还会继承protected的,但是友好的就不会了

注:友好的就是啥都不写,默认友好权限。

子类继承父类时,如果父类有无参数的构造函数会自动调用,如果没有需要在子类构造函数的第一条写super();调用其带参数的构造函数。 因为子类是不继承构造函数的。

接口和抽象类

接口:所有的方法都是public abstract的,只能有常量(public static final),不能有变量,实现接口的非抽象类必须明确的写出public,因为不能降低访问权限。
抽象类:方法可以不带abstract,不带的可以编写实现细节,也可以有变量,抽象类不能被实例化。

抽象类是整个类的抽象思维,而接口是类中的某些行为被抽象。

区别:
1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。

内部类

内部类就是在类里面的类,其不可以申明类方法和类变量,仅供其内嵌类使用。是唯一可以被static修饰的类

Exception和Error的区别

两者都是Throwable的子类

  • Exception:是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。
    Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。
    不检查异常就是所谓的运行时异常,类似 NullPointerException、ArrayIndexOutOfBoundsException 之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求。

  • Error:由 JVM生成并抛出,大多数错误与代码编写者所执行的操作无关。例如,Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。

posted @ 2023-02-28 10:46  吴承勇  阅读(17)  评论(0编辑  收藏  举报