论坛首页 入门技术论坛

Static、final、Abrstract、Interface

浏览 2006 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-16  

   Static:用来声明类中的全局类变量,相对于实例变量。如下:
public class StaticTest
{
  int x=1;  //实例变量
  static int y=1;  //全局变量
public StaticTest()
 {
   x++;
   y++; 
 }
public static void main(String[] args)
 {
   StaticTest t1=new StaticTest();  //生成实例t1
   StaticTest t2=new StaticTest();  //生成实例t2
   System.out.println("t1.x="+t1.x);  //输出实例t1中的变量x
   System.out.println("t2.x="+t2.x);  //输出实例t2中的变量x
   //System.out.println("StaticTest.x="+StaticTest.x);//无法输出类StaticTest中的

变量x
   System.out.println("StaticTest.y="+StaticTest.y);//输出类StaticTest中的变量y
 }
}
//执行后输出结果如下:
t1.x=2
t2.x=2
StaticTest.y=3
在上例中x为实例变量,y为全局变量。当生成StaticTest类的实例t1时系统为实例变量x、全局变量

y初始化分配空间,并执行方法StaticTest();生成第二个实例t2时重新初始化x为1、全局变量y此时

已经赋值为2,执行方法ststictest();实例变量无法由类直接引用,必须在生成实例后由实例进行

引用。

final:只用来修饰类及其的成员:变量、方法;final类无法继承、final变量无法修改、final方法

无法重写。如下:
public final class FinalTest
{
  final int i=10; 
  public FinalTest(){}
  public final int getNumber()
    {
      i =20;//i无法被再次处世化
      return i;
    }   
}
class FinalSub extends FinalTest{}//FinalTest无法被继承FinalSub
class FinalDemo 
  {
    final int getNumber()
      {
       return 10;
      }
  }
class FinalDemoSub extends FinalDemo
  {
    int getNumber(){return 20;}//getNumber()无法重写
  }

Abstract:用来声明类为抽象方法类,被Abstract声明的类中至少有一个方法被Abstract声明为抽象方法并且抽象方法中没有实现内容。含有抽象方法的类必须被声明为抽象类。
    抽象类无法创建对象,只能用来被继承,继承抽象类的子类必须重写所有父类中的抽象方法。如:
public abstract class Account
  {
    public abstract String getName();
.....
  }

InterFace:接口是抽象类的一个特例,接口中所有的方法必须为抽象方法,一个类可以实现多个接口,接口可以继承接口。

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics