Java中的static、final、abstract关键字


static、final、abstract关键字


1、static关键字

1.1 static修饰成员变量
• static修饰的成员变量是属于类的变量,通常可以通过类名来引用static成员;

• static成员变量和类的信息一起存储在方法区,而不是在堆中,一个类的static成员变量只有一份,无论该类创建了多少个对象。

1.2 static修饰方法与类
• static修饰的成员方法变成了类方法,可以直接通过类名调用。由于static在调用时没有具体的对象,因此在static方法中不能对非static成员(对象成员)进行访问。

• static修饰的方法作用在于提供一些“工具方法”和“工厂方法”等。

• static修饰的类有以下特点:随着类的加载而加载、优先于对象存在、被所有对象所共享、可以直接被类名调用

1.3 static块
static块:属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在软件中加载静态资源。(静态代码块在对象创建之前运行)

2、final关键字

2.1 final修饰变量
• final关键字修饰成员变量,意为不可改变

• final修饰成员变量,两种方式初始化:
声明同时初始化
构造函数中初始化

• final关键字也可以修饰局部变量使用之前初始化即可。

2.2 final修饰方法与类
• final关键字修饰的方法可以被重写。(使一个方法不能被重写的意义在于:防止子类在定义新方法时造成的“不经意”重写。)

• final关键字修饰的类可以被继承。(使一个类不能被继承的意义在于:可以保护类不被继承修改,可以控制滥用继承对系统造成的危害。)

2.3 static final 常量
• static final 修饰的成员变量成为常量必须声明同时初始化,不可被改变。

3、abstract关键字

3.1 抽象方法和抽象类
• 由abstract修饰的方法为抽象方法,抽象方法只有方法的定义,没有方法体实现,用一个分号结尾;(一个普通方法中{}表示方法体,抽象方法不能有{}

• 一个类中如果包含抽象方法,该类应该用abstract关键字声明为抽象类;

• 如果一个类继承了抽象类,必须重写其抽象方法(除非该类也声明为抽象类)。

• 抽象类不可以实例化。即使一个类中没有抽象方法,也可以将其定义为抽象类,同样,该类不可以实例化。但是有抽象方法的类必须是抽象类。

• abstract和final关键字不可以同时用于修饰一个类,因为final关键字使得类不可继承,而abstract修饰的类如果不可以继承将没有任何意义。

3.2 抽象类的意义
• 为其子类提供一个公共的类型;
• 封装子类中的重复内容(成员变量和方法);
• 定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值