面向对象进阶(权限修饰符、抽象类、接口)

169 阅读3分钟

面向对象进阶(权限修饰符、抽象类、接口)

一、权限修饰符

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定义的方法子类不能重写。

六、接口

  1. 什么是接口?

    接口就是一组行为规范

  2. 格式:

    public interface 接口名 {
       // 常量
       // 抽象方法
    } 
    
  3. 接口用法:
    接口是用来被类实现(implements)的,实现接口的类称为实现类
    接口可以被类单实现,也可以被类多实现。
    接口和接口的关系:多继承,一个接口可以同时继承多个接口。