通过一个实例,讲解java 中的类、方法和字段

 
public   class  Main5
{
      
public static void main(String[]args)
     
{
          
//直接访问抽象类的静态字段和静态方法
          System.out.println(ATest.a);//5
          System.out.println(ATest.mul(2,6));//12
         
//最终静态字段
         System.out.println(ATest.D);//30
         
//最终实例字段,错误
        
//System.out.println(ATest.C);//20
        
//----------------------------------------------------------------------
        System.out.println(StaticTest.a);//5
        System.out.println(StaticTest.D);//30
        System.out.println(StaticTest.mul(2,5));//10
        
//----------------------------------------------------------------------
        StaticTest st=new StaticTest();
  
       System.out.println(st.a);
//5
       System.out.println(st.b);//6
       System.out.println(st.C);//20
       System.out.println(st.D);//30
  
        System.out.println(st.mul(
3,5));//15
       System.out.println(st.sum(100,200));//300
       System.out.println(st.sqr(3));//9
     }

}

// 不能创建抽象类的实例,自然没办法通过它的实例来访问其实例方法和字段
// 那么是否可以直接访问抽象类的静态方法和静态域呢?
// 如果抽象类的子类不为抽象类,则子类必须实现父类的所有抽象方法
abstract   class  ATest
{
     
//静态域和静态方法类似C++中的全局域和全局方法,即不需要创建类的实例就可以访问,且在内存中永远只有唯一的副本
     
//这恰恰弥补了实例域在这两个方面的不足。
     static int a=5;//静态域,可以被继承,也可以被覆盖.随类的使用而创建,在内存中永远只有一个副本
     int b=6;//实例域,可以被继承,也可以被覆盖
    final int C=20;
    
static final int D=30;
     
//抽象方法,含抽象方法的类必须为抽象类
     
//抽象方法必须为实例方法
    abstract int sum(int a,int b);
    
//静态方法,
    static int mul(int a,int b)
   
{
         
return a*b;
    }

   
//实例方法
    int sqr(int a)
    
{
         
return a*a;
    }

}

class  StaticTest  extends  ATest
{
 
//已经继承了其父类的所有方法和字段
 
//final类表示不可以被继承的类,即不能有子类
 
//final字段和方法,可以被继承,但不能被覆盖。
 
//静态域和静态方法类似C++,VB中的全局域和全局方法,即不需要创建类的实例就可以访问,且在内存中永远只有唯一的副本
 
//这恰恰弥补了实例域在这两个方面的不足。
 
//static int a=10;//覆盖了父类中的a,随类的使用而创建,在内存中永远只有一个副本
 
//int b=10;//覆盖了父类中的b,随每一个类的实例创建一个副本
 
//具体实现父类的抽象方法(overloading)
 int sum(int a,int b)
 
{
  
return a+b;
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值