三个修饰符

一、抽象类

abstract修饰类,此类不能new对象。

abstract修饰的类,称为抽象类

抽象类意为不够完整的类、不够具体的类,抽象类对象无法独立存在,即不能new对象

 

作用:
  • 可被子类继承,提供共性属性和方法;
  • 可声明为引用,更自然的使用多态。

 

  • 抽象父类,可作为子类的组成部分,依附于子类对象存在,由父类共性+子类独有组成完整的子类对象。

抽象方法只有方法声明,没有方法实现。 

产生继承关系后,子类必须重写父类中所有的抽象方法,否则子类还是抽象类

public abstract void eat();
public abstract void sleep();

abstract修饰是类是抽象类,不能new对象,可以被继承,也可以声明引用;

abstract修饰方法是抽象方法,只有方法声明,没有方法体,包含在抽象类中;

抽象类不一定有抽象方法,有抽象方法的类一定是抽象类;

子类继承抽象类后,必须重写父类中所有的抽象方法,否则子类还是抽象类。

 二、static

static修饰的属性称为静态属性(类属性),被static修饰的方法称为静态方法(类方法)。

静态成员是全类所有对象共享的成员,在全类中只有一份,不因创建多个对象而产生多份。

  • 类名.成员
  • 对象名.成员

 实例属性是每个对象各自持有的独立空间,对象单方面修改,不会影响其他对象。

public class MyClass {
    public int a;//实例属性
    public static int b;//静态属性
}

public class MyTest2 {
    public static void main(String[] args) {
        //static修饰的变量随着类的加载而存在,和是否创建对象无关。
        MyClass.b = 10;
        System.out.println(MyClass.b);
        System.out.println("==========================");
        MyClass c1 = new MyClass();
        MyClass c2 = new MyClass();
        System.out.println("c1.b = " + c1.b);
        System.out.println("c2.b = " + c2.b);
        System.out.println("==========================");
        c1.b = 1000;
        System.out.println("c1.b = " + c1.b);
        System.out.println("c2.b = " + c2.b);
    }
}

 静态属性是整个类共同持有的共享空间(只有一份),任何对象修改静态属性,都会影响其他对象对该属性的访问。

static修饰的变量随着类的加载而存在,和是否创建对象无关。

 类加载
  • 创建对象;
  • 创建子类对象;
  • 访问静态属性;
  • 调用静态方法;
  • 主动加载:Class.forName("全类名")
静态代码块 

定义在类中,与属性和方法处于同一级。

class 类名 {
 static {
     //静态代码块
 }
}

 

类加载时,触发静态代码块的执行(仅一次)。

执行时机

  • 静态代码块和静态属性的初始化顺序,由在类中书写的顺序决定;
  • 代码块和属性的初始化先于构造方法执行。

作用:可为静态属性赋值,或必要的初始行为。

三、final

final修饰的类,不能被继承

  • StringMathSystem都被final修饰,不能被继承。

final修饰的方法,不能被重写(覆盖)

final修改的变量,是常量,不能修改值

  • 所有final修改的变量只能赋值一次,值不允许改变。

 赋值时机:显式初始化,动态代码块,构造方法。

 赋值时机:显式初始化,静态代码块。

final修饰引用类型,地址不可变。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值