⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j02080403.java

📁 经典java教材《java完美经典》一书中源码的完全收集
💻 JAVA
字号:
import java.lang.*;
import java.lang.reflect.Method;

class j02080403
{	 
	public static void main(String[] para)
  {		
    System.out.println("====== A 类之 obj1 对象 ====== ");		
    A obj1 = new A();   
    obj1.fun1();
    obj1.showAA();
    obj1.showAA(1111);
    System.out.println("obj1.aa = " + obj1.aa);    
    
    System.out.println("====== B1 类之 obj2 对象 ====== ");		          
    B1 obj2 = new B1();
    obj2.fun1();
    obj2.showAA();
    obj2.showAA(3333);
    System.out.println("obj2.aa = " + obj2.aa);
    
    System.out.println("====== B2 类之 obj3 对象 ====== ");		    
    B2 obj3 = new B2();
    obj3.fun1();
    obj3.showAA();
    obj3.showAA(6666);  
    System.out.println("obj3.aa = " + obj3.aa);
    
    
    //================ 父类对象引用子类实例 ====================
    //======== 可引用「多型」,以及「满足」与对象的转型  =========== 
       
    System.out.println("=== A 类对象 obj4 引用 B1 之对象实例 === ");	    
    A obj4 = new B1();
    obj4.fun1();
    obj4.showAA();
    obj4.showAA(7777); 
    System.out.println("obj4.aa = " + obj4.aa);
    
    System.out.println("=== A 类对象 obj5 引用 B2 之对象实例 === ");	    
    A obj5 = new B2();
    obj5.fun1();
    obj5.showAA();
    obj5.showAA(8888);  //会使用到 B2 的 bb 变量  
    System.out.println("obj5.aa = " + obj5.aa);     
    // System.out.println("obj5.bb = " + obj5.bb);  //错误,A 类的 obj5 没有 bb 成员变量 
    // obj5.fun2("if overload ==>"); //错误,A 类之 fun2() 的参数型式没有 (String) 这种
  }
}

class A
{
  public int aa = 1000;
    
  public void fun1()
  {
  	System.out.println("A 类的 fun1() 方法");
  }
  
  public void fun2()
  {
  	System.out.println("A 类的 fun2() 方法");
  }	
  
  public void showAA()
  {                                 // 存取 A 类内定义的 aa
  	System.out.println("call A class showAA() : aa = " + aa);
  }
  
  public void showAA(int aaValue)
  {
  	aa = aaValue;
  	System.out.println("call A class showAA(int) : aa = " + aa);
  }
}

class B1 extends A
{
  public String aa = "001-aa";
  
  public void showAA()
  {                                 // 存取 B1 类内定义的 aa
  	System.out.println("call B1 class showAA() : aa = " + aa);
  }
  
  public void fun1()
  {  //返回类型一定要一样才能 override,否则会有 error
  	System.out.println("B1 类的 fun1() 方法");
  } 
}

class B2 extends A
{	 
  public String aa = "002-aa";
  public int bb = 300;
   
  public final void fun1()
  {     //修饰字不同一样也是 override
    System.out.println("B2 类的 fun1() 方法");  
    bb = bb + 10;
    System.out.println("bb = " + bb);
  }
  
  public void fun2(String str)
  {   //不算 fun2() 的 overload,也不是 override
  	System.out.println(str + "B2 类的 fun2() 方法");
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -