A 抽象类能被继承,最终类只能被实例化。
B 抽象类和最终类都可以被声明使用
C 抽象类中可以没有抽象方法,最终类中可以没有最终方法
D 抽象类和最终类被继承时,方法可以被子类覆盖
思路:最终类也叫密封类,是被final修饰的类
抽象类不能被实例化;最终类不能被继承
A private>default>protected>public
B public>default>protected>private
C private>protected>default>public
D public>protected>default>private
思路:default的意思是包访问权限,什么都不加就是default
class HelloA{public HelloA(){System.out.println("I’m A class ");}static{System.out.println("static A");}}public class HelloB extends HelloA{public HelloB(){System.out.println("I’m B class");}static{System.out.println("static B");}public static void main (String[] args){new HelloB();}
}
A static A I’m A class static B I’m B class
B I’m A class I’m B class static A static B
C static A static B I’m A class I’m B class
D I’m A class static A I’m B class static B
思路:先执行静态代码块再执行构造方法;先执行父类的再执行子类的
A public abstract final class Test { abstract void method(); }
B public abstract class Test { abstract final void method(); }
C public abstract class Test { abstract void method() { } }
D public class Test { final void method() { } }
思路:abstract和final是不能同时出现的;抽象方法不能有具体的实现,也就是不能有{}
A java语言规定构造方法名与类名必须相同
B java语言规定构造方法没有返回值,但不同void声明
C java语言规定构造方法不可以重载
D java语言规定构造方法只能通过new自动调用
思路:构造方法可以重载;子类里面可以通过super调用构造方法
A long test=012
B float f=-412
C int other =(int)true
D double d=0x12345678
E byte b=128
思路:A:给赋值了一个八进制的数,012==10
B:给赋值了一个负数
C:true是布尔类型,不可以和数值类型交互,强转的前提是同一数值类型
D:给赋值了一个16进制的数
E:128超过了byte的范围,byte的取值范围是-128—127