面向对象进阶(权限修饰符、抽象类、接口)
一、权限修饰符
1.1 什么是权限修饰符?
- 权限修饰符:是用来控制一个成员能够被访问的范围的。
- 可以修饰成员变量,方法,构造器,内部类,不同权限修饰符修饰的成员能够被访问的范围将受到限制。
1.2 权限修饰符的分类和具体作用范围:
- 作用范围由小到大(private -> 缺省 -> protected - > public)
二、final
-
final的作用
- final 关键字是最终的意思,可以修饰(方法,变量,类)
- 修饰方法:表明该方法是最终方法,不能被重写。
- 修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)。
- 修饰类:表明该类是最终类,不能被继承。
-
final修饰变量的注意
- final修饰的变量是基本类型:那么变量存储的数据值不能发生改变。
- final修饰的变量是引用类型:那么变量存储的地址值不能发生改变,但是地址指向的对象内容是可以发生变化的。
三、常量
-
概述:
- 是使用了public static final修饰的成员变量,必须有初始化值,而且执行的过程中其值不能被改变。
-
作用:
- 可以用于做系统的配置信息,方便程序的维护,同时也能提高可读性
例如下代码:
public class Constant { public static final String SCHOOL_NAME = “传智教育"; public static final String LOGIN_NAME = “admin"; public static final String PASS_WORD = “123456"; }
四、枚举
-
作用:
- 是为了做信息的标志和信息的分类
-
格式:
修饰符 enum 枚举名称{ 第一行都是罗列枚举类实例的名称。 } //如 public enum Season{ SPRING , SUMMER , AUTUMN , WINTER; } -
特点:
- 不可以被继承
- 构造器都是私有的,枚举对外不能创建对象。
五、抽象类
-
抽象类:
- 修饰符 abstract class 类
-
抽象方法
-
没有方法体,只有方法签名,必须abstract修饰
-
抽象类中定义的子类必须完成的功能的基本要求
修饰符 abstract 返回值类型 方法名称(形参列表);
-
注意点:
* 抽象类用来被继承的,抽象方法是交给子类重写实现的。
* 一个类如果继承了抽象类,那么这个类必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。
* 不能用abstract修饰变量、代码块、构造器。
final和abstract是什么关系?
- 互斥关系
- abstract定义的抽象类作为模板让子类继承,final定义的类不能被继承。
- 抽象方法定义通用功能让子类重写,final定义的方法子类不能重写。
六、接口
-
什么是接口?
接口就是一组行为规范
-
格式:
public interface 接口名 { // 常量 // 抽象方法 } -
接口用法:
接口是用来被类实现(implements)的,实现接口的类称为实现类
接口可以被类单实现,也可以被类多实现。
接口和接口的关系:多继承,一个接口可以同时继承多个接口。