Java基础-抽象类与static修饰符

Java基础-抽象类与static修饰符

static 修饰符

  • static修饰符可以修饰属性、方法、内部类。而经过static修饰的属性和方法都会随着类加载时进行初始化加载,当其他类想使用被static修饰符修饰过的方法时可以直接用类名.方法名(属性名)进行调用
    在这里插入图片描述可以看到,我们直接使用类名.方法名(属性名)可以直接调用这个方法和属性。

  • 如果是被private 关键字修饰过的方法或属性则无法在其他类进行调用
    在这里插入图片描述
    但是我们可以在它的本部类中进行直接调用
    在这里插入图片描述

  • 我们还可以使用 static修饰符去修饰代码块,也叫静态代码块
    在这里插入图片描述
    不使用static修饰 以大括号括起来的代码叫匿名代码块 ,因为它是没有名字的。而被static修饰的代码块是静态代码块。
    可以看到当我们new这个类时,今天代码块会随着类的实例化一块进行初始化,先执行静态代码块,再执行匿名代码块,最后再执行构造器中的方法

  • 结论:被static修饰符修饰的方法、属性、会跟随着类的加载一块进行初始化操作,而在代码块中,优先执行被static修饰过的代码块,在执行匿名代码块,最后执行构造器中的方法


abstract 修饰符

  • 被abstract 修饰的类叫做抽象类,抽象类的意义在于约束,当我们在抽象类中定义了抽象方法时,相当于规定了继承该类的子类必须要实现抽象类中所有的抽象方法,但并不关注具体实现的内容,只关注是否实现。

  • 被abstract 修饰的方法叫做抽象方法,抽象方法只有方法的名字和返回值类型,没有具体的实现,所有的抽象方法必须由该类的子类进行实现。

在这里插入图片描述

可以看到,当继承该类的子类未实现抽象方法时,编译器会直接报错。

  • 抽象类中不但可以定义抽象方法,还能定义普通方法。但是需要注意的是抽象类一般是不能被实例化的。所以可以得出:抽象类中的普通方法是由只能由子类对象或抽象类本身 进行调用
    在这里插入图片描述

  • 但是!!! 我们使用多态进行实例化的时候 是可以创建出抽象类的实例的。
    public static void main(String[] args) {
        Test04 test04 = new Test03();
        test04.tset();
    }

当父类的引用来指向子类时,我们便可以实例化抽象类,此时也会调用抽象类的构造器。
在这里插入图片描述

  • 结论:抽象类不但包括抽象方法,还包括普通方法,但是抽象类一般无法被实例化只能通过多态的形式以父类的引用指向子类进行实例化,所以抽象类中的普通方法只能由其子类或它本身进行调用。抽象方法只有名字而无具体实现,每一个抽象方法都像是在约束它的子类必须要做某个事情,实现某个方法。----约束。

学习时的一些理解,若有错误,欢迎指正~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值