问下 J2SE 里static 和 final , abstract 的区别

1007 2010-01-11 10:00:35
大家好!

总是分不清 static 和 final , abstract 的区别

请大家指点一下~
...全文
191 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
charlotte0517 2011-05-02
  • 打赏
  • 举报
回复
很好,解决了我的问题
hzq237 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xyz20003 的回复:]
abstract是抽象的,留着方法等着子类实现,为继承多态而生。

static是静态的,不用实例化就可以用。

final是常量,只读不可修改。
[/Quote]
存在666 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ocean20 的回复:]
Static
1. static修饰的属相和方法属于整个类的属性和方法,在创建类的对象时只开辟一块内存空间,所用对象共用这块内存空间。
2. 静态初始化块的使用:
Static { 初始化代码 }


Final

1. fianl修饰的变量是常量,其值不能在被改变。常量的只能初始化一次,其后只不能再被改变,而且初始化只有两种方式:一、在定义的时候初始化。二、在类的构造函数中初始化.
2. fianl修饰的方法为最终方法,不能被覆盖但可以被继承。
3. final修饰的类为最终类,不能再被继承。


Abstract
1. abstract 修饰的类为抽象类,不能实例化
2. abstract 修饰的方法为抽象方法,抽象方法只有方法头没有方法体,在子类的类中必须实现父类的所有抽象方法。即:抽象类中不一定有抽象方法,但有抽象方法的类必须声明为抽象类。

[/Quote]

他说的就是我想说的!VERY GOOD!
bolink5 2010-01-11
  • 打赏
  • 举报
回复
static
当系统需要为某一个变量或者常量分配某个固定的内存区域,就会用到static
当你想调用你一个方法但不想创建对象,就可以通过类名来调用这个方法
在web开发中 一般是定义常量多点 如: public static final String name="ZHANG_SAN";
final
可以结合static 用,声明一个固定常量
如果你不希望你的类或者方法被继承,就可以使用此关键字
如果你不希望你的属性被修改,也可以用此关键字修饰(注:此种用法也有一定的风险,通过反射一样是可以修改定义成private final 属性的)
abstract
抽象一般是父类,你可以在这个类中定义公共的东西,让使用的类继承此类就可以了
接口本身也是抽象类
个人见解,写的也比较乱,LZ 随便看看。
quansheng2580 2010-01-11
  • 打赏
  • 举报
回复
老问题了 google一下
alexhilton 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ocean20 的回复:]
Static
1. static修饰的属相和方法属于整个类的属性和方法,在创建类的对象时只开辟一块内存空间,所用对象共用这块内存空间。
2. 静态初始化块的使用:
Static { 初始化代码 }


Final

1. fianl修饰的变量是常量,其值不能在被改变。常量的只能初始化一次,其后只不能再被改变,而且初始化只有两种方式:一、在定义的时候初始化。二、在类的构造函数中初始化.
2. fianl修饰的方法为最终方法,不能被覆盖但可以被继承。
3. final修饰的类为最终类,不能再被继承。


Abstract
1. abstract 修饰的类为抽象类,不能实例化
2. abstract 修饰的方法为抽象方法,抽象方法只有方法头没有方法体,在子类的类中必须实现父类的所有抽象方法。即:抽象类中不一定有抽象方法,但有抽象方法的类必须声明为抽象类。

[/Quote]
这兄弟说的很清楚了
xiaowulaidemei 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ocean20 的回复:]
Static
1. static修饰的属相和方法属于整个类的属性和方法,在创建类的对象时只开辟一块内存空间,所用对象共用这块内存空间。
2. 静态初始化块的使用:
Static { 初始化代码 }


Final

1. fianl修饰的变量是常量,其值不能在被改变。常量的只能初始化一次,其后只不能再被改变,而且初始化只有两种方式:一、在定义的时候初始化。二、在类的构造函数中初始化.
2. fianl修饰的方法为最终方法,不能被覆盖但可以被继承。
3. final修饰的类为最终类,不能再被继承。


Abstract
1. abstract 修饰的类为抽象类,不能实例化
2. abstract 修饰的方法为抽象方法,抽象方法只有方法头没有方法体,在子类的类中必须实现父类的所有抽象方法。即:抽象类中不一定有抽象方法,但有抽象方法的类必须声明为抽象类。
2
[/Quote]
顶了
fengfengye 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xyz20003 的回复:]
abstract是抽象的,留着方法等着子类实现,为继承多态而生。

static是静态的,不用实例化就可以用。

final是常量,只读不可修改。
[/Quote]

临远 2010-01-11
  • 打赏
  • 举报
回复
abstract是抽象的,留着方法等着子类实现,为继承多态而生。

static是静态的,不用实例化就可以用。

final是常量,只读不可修改。
hiperion 2010-01-11
  • 打赏
  • 举报
回复
Static
1. static修饰的属相和方法属于整个类的属性和方法,在创建类的对象时只开辟一块内存空间,所用对象共用这块内存空间。
2. 静态初始化块的使用:
Static { 初始化代码 }


Final

1. fianl修饰的变量是常量,其值不能在被改变。常量的只能初始化一次,其后只不能再被改变,而且初始化只有两种方式:一、在定义的时候初始化。二、在类的构造函数中初始化.
2. fianl修饰的方法为最终方法,不能被覆盖但可以被继承。
3. final修饰的类为最终类,不能再被继承。


Abstract
1. abstract 修饰的类为抽象类,不能实例化
2. abstract 修饰的方法为抽象方法,抽象方法只有方法头没有方法体,在子类的类中必须实现父类的所有抽象方法。即:抽象类中不一定有抽象方法,但有抽象方法的类必须声明为抽象类。
xmykd 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ocean20 的回复:]
Static
1. static修饰的属相和方法属于整个类的属性和方法,在创建类的对象时只开辟一块内存空间,所用对象共用这块内存空间。
2. 静态初始化块的使用:
Static { 初始化代码 }


Final

1. fianl修饰的变量是常量,其值不能在被改变。常量的只能初始化一次,其后只不能再被改变,而且初始化只有两种方式:一、在定义的时候初始化。二、在类的构造函数中初始化.
2. fianl修饰的方法为最终方法,不能被覆盖但可以被继承。
3. final修饰的类为最终类,不能再被继承。


Abstract
1. abstract 修饰的类为抽象类,不能实例化
2. abstract 修饰的方法为抽象方法,抽象方法只有方法头没有方法体,在子类的类中必须实现父类的所有抽象方法。即:抽象类中不一定有抽象方法,但有抽象方法的类必须声明为抽象类。

[/Quote]
讲得很清楚了!
sagegz 2010-01-11
  • 打赏
  • 举报
回复
建议你去看下《SCJP学习指南》
AC903919 2010-01-11
  • 打赏
  • 举报
回复
UP
[Quote=引用 7 楼 bolink5 的回复:]
  static 
  当系统需要为某一个变量或者常量分配某个固定的内存区域,就会用到static
  当你想调用你一个方法但不想创建对象,就可以通过类名来调用这个方法
  在web开发中 一般是定义常量多点 如: public static final String name="ZHANG_SAN";
final
  可以结合static 用,声明一个固定常量
    如果你不希望你的类或者方法被继承,就可以使用此关键字
    如果你不希望你的属性被修改,也可以用此关键字修饰(注:此种用法也有一定的风险,通过反射一样是可以修改定义成private final 属性的)
  abstract 
    抽象一般是父类,你可以在这个类中定义公共的东西,让使用的类继承此类就可以了
    接口本身也是抽象类
  个人见解,写的也比较乱,LZ 随便看看。
[/Quote]
hhxinghuo 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 1007 的回复:]
大家好!

总是分不清 static 和 final , abstract 的区别 

请大家指点一下~
[/Quote]

说的很具体!
baby1986 2010-01-11
  • 打赏
  • 举报
回复
为什么不看一下书?书上说的绝对比大家七嘴八舌的有权威!

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧