[不定项选择题]
哪个正确
-
A abstract类只能用来派生子类,不能用来创建abstract类的对象。
-
B final类不但可以用来派生子类,也可以用来创建final类的对象。
-
C abstract不能与final同时修饰一个类。
-
D abstract类定义中可以没有abstract方法。
正确答案:A C D
1、abstract类不能用来创建abstract类的对象;
2、final类不能用来派生子类,因为用final修饰的类不能被继承;
3、如2所述,final不能与abstract同时修饰一个类,abstract类就是被用来继承的;
4、类中有abstract方法必须用abstract修饰,但abstract类中可以没有抽象方法,接口中也可以有abstract方法。
抽象方法可以在接口和抽象类里面声明,抽象类可以没有抽象方法
选 ACD
A,抽象类和接口都不可以实例化。
B,final类不能被继承。
C,abstract不能和final共用修饰类。
D,抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类。
注意:abstract是用来修饰类和方法的:
1. 修饰方法:abstract不能和private、final、static共用。
2. 修饰外部类:abstract不能和final、static共用。(外部类的访问修饰符只能是默认和public)
3. 修饰内部类:abstract不能和final共用。(内部类四种访问修饰符都可以修饰)
- final:修饰符,如果修饰类,此类不能被继承;如果修饰方法和变量,则表示此方法和此变量不能在被改变,只能使用。
- abstract:修饰符,如果是修饰类,此类是抽象类,抽象类可以包含抽象方法,但没必要;抽象类不能直接实例化,需要被继承以后才能实例化,因为抽象类本身就是为了继承而设计的。
- 定义抽象类就是让其他类继承的,如果用 final修饰 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类,
1.包含抽象方法的类必须是抽象的,但是,可以定义一个不包含抽象方法的抽象类(一般用于多个子类的基类,不可被new)
2.即使子类的父类是具体的,这个子类也可以是抽象的。