static和final能否修饰类,方法,属性

先描述static

  • 不能修饰普通类,可以修饰内部类。
  • 可以修饰方法。
  • 可以修饰属性。

1-1:修饰内部类后内部类有什么特点?
答:可以直接创建对象,创建方式如下

在这里插入图片描述

1-2:如果内部类没有被继承如果创建对象?
答:必须先new一个外部类对象,然后在对象.new 外部类创建
代码如下:

2-1:被static修饰的方法被继承后还能被重写吗?
答:不可以被重写,原因:父类用的是子类的实例,是拿不到子类的static属性的。被static修改的变量和方法是和类在编译时候就绑定的。
代码如下

 class Aoo {

    static void method(){
        System.out.println("父类方法");
    }
    void me(){
        System.out.println("非静态父类方法");
    }
}
class Boo extends Aoo{
    static void method(){
        System.out.println("子类方法");
    }
    void me(){
        System.out.println("非静态子类方法");
    }

    public static void main(String[] args) {
        Aoo t = new Boo();
        t.method();
        t.me();
    }
    
    //输出是   父类方法
    //        非静态子类方法
}

2-2:被static修饰的方法能否重载?
答:当然能,代码如下
在这里插入图片描述

3-1:被static修饰的属性有什么特征?
答:在类加载时候就被执行,称为静态变量(也有常量)/类变量存储在方法区中。
可以直接用类去调用属性,不需要实例对象。


描述final关键字

1:可以修饰普通类,被修饰的类无法被继承(常见例子,String类)
2:可以修饰内部类,也不能被继承。
3:可以修饰方法,被修饰的方法可以被重载,不能被重写。
4:可以修饰属性,被修饰的属性为常量,必须要初始化常量。

1-1:重载代码如下
在这里插入图片描述

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值