基础题目
第一题:概念辨析
- 什么是接口,如何定义接口?
- 接口,是Java语言中一种引用类型,是方法的集合。
- 使用interface关键定义接口,其中可以定义抽象方法,默认方法,私有方法,静态方法等方法。
- 什么叫做多态,条件是什么?
- 一类事物的行为,具有多种表现形式。
- 条件:
- 继承或者实现【二选一】
- 方法的重写。
- 父类引用指向子类对象。
- 使用多态特性,带来了什么样的好处?
- 增强方法的扩展性和复用性。
- 使用多态特性,注意什么样的弊端?
- 由于类型的提升,导致调用子类对象特有的方法,必须向下转型。
第二题:语法练习
-
语法点:接口
-
按步骤编写代码,效果如图所示:
-
编写步骤:
- 定义接口A,普通类B实现接口A
- A接口中,定义抽象方法showA。
- A接口中,定义默认方法showB。
- B类中,重写showA方法
- 测试类中,创建B类对象,调用showA方法,showB方法。
-
参考答案.:
public class Test2 {public static void main(String[] args) {B b = new B();b.showA();b.showB();}}interface A{public abstract void showA();public default void showB(){System.out.println("BBBB");}}class B implements A {@Overridepublic void showA() {System.out.println("AAAA");}}
第三题:语法练习
-
语法点:接口
-
按步骤编写代码,效果如图所示:
-
编写步骤:
- 定义接口A,普通类B实现接口A。
- A接口中,定义抽象方法showA。
- A接口中,定义私有方法show10(String str),循环打印10次str。
- A接口中,定义默认方法showB10,showC10,分别调用show10方法,传入参数。
- 测试类中,创建B对象,调用showA方法,showB10方法,showC10方法
-
参考答案.:
public class Test3 {public static void main(String[] args) {BB b = new BB();b.showA();b.show10B();b.show10C();}}interface AA{public abstract void showA();public default void show10B(){show10("BBBB");}public default void show10C(){show10("CCCC");}private void show10(String str){for (int i = 0; i < 10; i++) {System.out.print(str+" ");}System.out.println();}}class BB implements AA {@Overridepublic void showA() {System.out.println("AAAA");}}
第四题:语法练习
-
语法点:接口,静态
-
按步骤编写代码,效果如图所示:
- 编写步骤
- 定义接口A,普通类B实现接口A。
- A接口中,定义抽象方法showA。
- A接口中,定义私有静态方法show10(String str),循环打印10次str。
- A接口中,定义静态方法showB10,showC10,分别调用show10方法,传入参数。
- B类中,定义静态方法showD
- 测试类中,使用A接口,调用静态showB10方法,showC10方法,
- 测试类中,使用B类,调用showA方法,showD方法。
- 参考答案.:
public class Test4 {public static void main(String[] args) {AAA.showB();AAA.showC();BBB bbb = new BBB();bbb.showA();BBB.showD();}}interface AAA {public abstract void showA();public static void showB(){System.out.println("static BBBB");show10("BBBB");}public static void showC(){System.out.println("static CCCC");show10("CCCC");}private static void show10(String str) {for (int i = 0; i < 10; i++) {System.out.print( str+" ");}System.out.println();}}class BBB implements AAA {@Overridepublic void showA() {System.out.println("AAA");}public static void showD(){System.out.println("DDDD");}}
第五题:语法练习
-
语法点:接口,多态
-
按步骤编写代码,效果如图所示:
-
编写步骤
- 定义接口Universe,提供抽象方法doAnything。
- 定义普通类Star,提供成员发光shine方法
- 定义普通类Sun,继承Star类,实现Universe接口
- 测试类中,创建Star对象,调用shine方法
- 测试类中,多态的方式创建Sun对象,调用doAnything方法,向下转型,调用shine方法。
-
参考答案.:
public class Test5 {public static void main(String[] args) {Star s = new Star();s.shine();System.out.println("====================");Universe universe = new Sun();universe.doAnything();Sun sun = (Sun) universe;sun.shine();}}interface Universe{public abstract void doAnything();}class Star {public void shine(){System.out.println("star:星星一闪一闪亮晶晶");}}class Sun extends Star implements Universe{@Overridepublic void doAnything() {System.out.println("sun:太阳吸引着9大行星旋转");}@Overridepublic void shine() {System.out.println("sun:光照八分钟,到达地球");}}