java基础

接口和抽象类的区别

1 接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。

2 接口里只能定义静态常量,不能定义普通成员变量,抽象类里则既可以定义普通成员变量,也可以定义静态常量。

3 接口不能包含构造器,抽象类可以包含构造器。

4 接口中声明的变量默认都是final的。抽象类可以包含非final的变量。

5 接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。

抽象方法:

特征:没有方法体,没有大括号,已分号结尾。只需声明不需实现。

Public abstract void run();

抽象方法必须以分号结尾,且不带花括号。

抽象方法只提供方法的头部,不提供实现的部分。

抽象方法只能放在抽象类中。

抽象方法不能用private修饰。

抽象类必须被继承,抽象方法必须被重写。

构造器(constructor)是否可被重写(override)?
答:构造器不能被继承,因此不能被重写,但可以被重载。

final

用final修饰的类是不允许被继承的

final修饰的方法是可以重载,但是在子类中不可以被重写。

Error、Exception和RuntimeException的区别,作用又是什么?

Error和Exception都是Throwable的子类,RuntimeException是Exception的子类。

Error用于指示合理应用程序不应该试图捕获的错误。

Exception指出合理的应用程序需要捕获的条件。分为已检查异常和未检查异常。

RuntimeException是未检查异常,不需要try catch或在方法上声明,主要子类:NullPointer、Arithmatic、ArrayIndexOutOfBounds、ClassCast。

switch语句不支持的数据类型?

long类型的数据和float类型的数据

原文地址:https://www.cnblogs.com/dingpeng9055/p/11850149.html