重要概念区分

一.static和final

1.static

用static修饰的数据成员称为静态数据成员,它专属于类,而不属于任何一个类的具体对象。

特点为被保存在类的内存区(堆中)的公共存储单元中,而不是保存在某个对象的内存区中。
类的静态属性可以被类、多个对象引用共享访问。

用static修饰的方法称为静态方法,它属于类方法,而不属于类的任何对象。

特点有: ①可以被所有对象访问(“对象引用.方法名”或“类名.方法名”)。
②static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为它们属于对象);但非static方法可以访问static属性或方法。
③main方法是特殊的静态方法。如果main方法中缺少static,则编译虽能够通过,但它并不能作为程序的入口。

2.final

以final修饰类属性,则该属性为常量;以final修饰方法,则方法称为最终方法,在子类中不允许被覆盖。

二.this和super

this和super如果存在,则位于第一句,并且不能同时存在。

1.this的三种用法

(1)this.域变量、this.成员方法

成员方法的形参名和域变量名相同或成员方法的局部变量名和域变量名相同等情况

(2)this(参数)

当一个构造方法需要调用另一个构造方法时,需要使用关键字this,同时这个语句应该是整个构造方法的第一个可执行语句。

(3)this指代当前对象

2.super的三种用法

(1)super.域变量、super.成员方法(参数)
(2)super(参数)

子类可以调用父类的构造方法,但必须使用关键字super。

三.抽象类和接口
1.抽象类:abstract修饰的类。
 抽象类形成的思维过程:客观事物——>对象——>类——>抽象类。

注意点:
(1)抽象类中可以有零个多个抽象方法,也可以包含非抽象方法。只要有一个抽象方法,类前就必须有abstract修饰。
(2)抽象类不能创建对象,创建对象由具体子类来实现,但可以有声明。声明能引用所有具体子类的对象。
(3)对于抽象方法,在抽象类中只指定方法名及类型,而不写实现代码。抽象类必定要派生子类,若派生的子类是具体类,则具体子类中必须实现抽象类中定义的所有抽象方法(覆盖)。
(4)在抽象类中,非抽象方法可以调用抽象方法。
(5)abstract不能与final并列修饰同一个类(产生逻辑矛盾);abstract 不能与private ,static(因为static修饰的方法必然被直接调用),final或native并列修饰同一个方法。

2.接口

可以被引用调用的方法(public方法或同包中的protected方法或默认方法);另一种是同“类”概念地位相当的专有概念interface(interface是方法说明的集合)。

注意点:
(1)接口定义用关键字interface,而不是用class,interface前的修饰符要么为public,要么为默认(包访问权限)。
(2)接口定义的数据成员全是final static(静态常量)。即使没有修饰符。
(3)接口中没有构造方法,所有成员方法都是public abstract 方法(与抽象类有所不同)。即使没有修饰符,其效果完全等效。注:方法前不能修饰为final。
(4)接口具有继承性,可通过extends关键字声明接口的父接口。
(5)接口和子接口都不能有自己的实例对象,但可以有自己的声明。因此接口中的常量必须定义为static,以表明其没有对象这一特点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值