扫码关注公众号
以下关于abstract关键字的说法,正确的是()
正确答案是D1abstract类不能与final,static使用。final修饰方法,子类可以调用,但不能覆盖。2最好不要有private
Java 中的final关键字有哪些用法?
(1)修饰类:表示该类不能被继承(2)修饰方法:表示方法不能被重写(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)
以下关于final关键字说法错误的是
正确答案是Afinal关键字声明属性、方法和类的时候需要注意以下几点:1、使用final声明的类不能有子类2、使用final声明的方法不能被子类覆写3、使用final声明的变量即为常量,常量不能修改4、在使用final声明变量时,要求全部的字母大写
抽象类(abstract class)和接口(interface)有什么异同?(阿里面试)
不同点:●抽象类中可以定义构造器,接口不能;●抽象类可以有抽象方法和具体方法,接口不能有具体方法;●接口中的成员全都是public的,抽象类中的成员可以使用private、public、protected、默认等修饰;●抽象类中可以定义成员变量,接口中只能是常量;●有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法;●抽象类中可以包含静态方法,接口中不能有静态方法;●一个类只能继承一个抽象类,一个类可以实现多个接口;相同点:●不能够实例化;●可以将抽象类和接口类型作为引用类型;●一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类;
final和static的区别
static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变,看一下网上的一个例子:publicclassTest{publicstaticvoidmain(String[]args){MyClassmyClass1=newMyClass();MyClassmyClass2=newMyClass();System.out.println(myClass1.i);System.out.println(myClass1.j);System.out.println(myClass2.i);System.out.println(myClass2.j);}}classMyClass{publicfinaldoublei=Math.random();publicstaticdoublej=Math.random();}//运行结果,两次打印,j的值都是一样的,j是static类型的属于类,因此两次值相同。i不是static的因此属于对象,但是i的值是不可变的。