先描述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:重载代码如下