基础题目
第一题:概念辨析
- 什么是接口,如何定义接口? 
  
- 接口,是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 {
	    @Override
	    public 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 {
	    @Override
	    public 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 {
	    @Override
	    public 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{
		    @Override
		    public void doAnything() {
		        System.out.println("sun:太阳吸引着9大行星旋转");
		    }
		    @Override
		    public void shine() {
		        System.out.println("sun:光照八分钟,到达地球");
		    }
		}
                


















