package day10; 
/*练习1,写出程序结果 
public class A { 
 public static void func() //throws Exception 
 { 
   try 
   { 
    throw new Exception(); 
   } 
   finally 
   { 
    System.out.println("B"); 
   } 
 } 
 public static void main(String[] args) 
 { 
     try 
     { 
      func(); 
      System.out.println("A"); 
     } 
     catch(Exception e) 
     { 
      System.out.println("C"); 
     } 
     System.out.println("D"); 
 } 
} 
编译失败,如果在func上声明了该异常,结果是B C D*/ 
/*练习2 写出程序结果 
 interface A{} 
 class B implements A 
 { 
      public String func() 
      { 
             return "func"; 
      } 
 } 
 class Demo 
 { 
      public static void main(String[] args) 
      { 
          A a=new B(); 
           
           System.out.println(a.func()); 
      } 
 } 
 编译失败:因为A接口从未定义func方法 
 */ 
/*练习3 写出程序结果 
class A 
{ 
      boolean show(char a) 
      { 
       System.out.println(a); 
       return true; 
      } 
} 
public class B extends A 
{ 
 public static void main(String[] args) 
 { 
  int i=0; 
  A a=new B(); 
  B b=new B(); 
  for(a.show('A');a.show('B')&&(i<2);a.show('C')) 
  { 
    i++; 
    b.show('D'); 
  } 
 } 
  boolean show(char a) 
      { 
       System.out.println(a); 
       return false; 
      } 
} 
运行结果A B 调用子类的Show 方法:a.show(B)==false 
*/ 
 
/*练习4 
 写出程序运行结果 
 class TD 
 { 
       int y=6; 
       class Inner 
       { 
            static int y=3; 
            void show() 
            { 
                System.out.println(y); 
            } 
       } 
 } 
 class TC 
 { 
   public static void main(String[] args) 
   { 
       TD.INner ti=new TD().new Inner(); 
       ti.show(); 
   } 
 } 
  
 编译失败,非静态类内部不可以定义静态成员 
 内部类如果定义了静态成员,该内部类必须被静态修饰。 
 */ 
/*练习5写出错误答案错误的原因 
 class demo 
 { 
   int show(int a,int b){return 0;} 
 } 
 下面哪些函数可以存在在Demo的子类中 
 public int show(int a,int b){ return 0;}//可以,覆盖 
 private int show(int a,int b){ return 0;}//不可以,权限不够 
 private int show(int a,long b){ return 0;}//可以相当于重载 
 static int show(int a,int b) { return 0;}//不可以静态只能覆盖静态 
 */ 
 
/*练习6 以下程序运行结果 
 class Fu 
 { 
     int num=4; 
     void show() 
     { 
         System.out.println("showFu");        
     } 
      
  class Zi extends Fu 
  { 
     int num=5; 
     void show() 
     { 
         System.out.println("showzi");   
     }    
  } 
   
  class T 
  { 
     public static void main(String[] args) 
     { 
        Fu f=new Zi(); 
        Zi z=new Zi(); 
         System.out.println("f.num");   
          System.out.println("z.num");   
          f.show(); 
          z.show(); 
     } 
  } 
 } 
运行结果是4 5 showZi showZi,变量不会被覆盖,成员变量看左边 ,方法调用覆盖的方法 
 */ 
/*练习7写出程序运行结果 
 class Demo 
 { 
  public static void func(){ 
    try 
    { 
       throw new Exception(); 
       System.out.println("A"); 
    } 
    catch(Exception e) 
    { 
     System.out.println("B"); 
    } 
 } 
  public static void main(String[] args) 
  { 
  try 
  { 
   func(); 
  } 
  catch(Exception e) 
  { 
   System.out.println("C"); 
  } 
  System.out.println("D"); 
  } 
 } 
编译失败因为不能执行到System.out.println("A"); 
注意:throw单独存在,下面不要定义语句,因为执行不到 
*/ 
/*练习8 写出程序结果 
 class Exc0 extends Exception{} 
 class Exc1 extends Exc0{} 
  
 *class Demo 
 { 
    public static void main(String[] args) 
    { 
      try 
      { 
        throw new Exc1(); 
      } 
      catch(Exception e) 
      { 
      System.out.println("Exception"); 
      } 
      catch(Exc0 e) 
      { 
      System.out.println("Exc0"); 
      } 
    } 
 } 
 编译失败因为,父类的catch要放在最下面 
 */ 
 
 
 
 
 
 
 
 
 
 |   
        
 
    
    
    
     
 
 |