当前位置: 代码迷 >> 综合 >> JAVA的三大修饰符:abstract,static,final
  详细解决方案

JAVA的三大修饰符:abstract,static,final

热度:34   发布时间:2024-01-26 17:15:11.0

1.abstract(抽象):

1.1抽象类

语法:

//修饰符 abstract class 类名{};
public abstract class Animal{}

 抽象类是不完整的类,抽象类无法独立存在,即抽象类不能被实例化(不能被new为对象);

public abstract class Animal{
}public class Test {public static void main(String[] args) {//错误,抽象类不能不实例化
//		Animal an = new Animal();		}	
}

1.2 抽象方法

语法

//修饰符 abstract 返回值 方法名();
public abstract void eat();

如果子类继承了一个抽象方法,那么子类要么把这个抽象方法完成,要么这个子类也是一个抽象类

 

特点:

抽象方法必须包含在抽象类中;
子类继承抽象父类的时候,子类要么实现父类中的抽象方法,要么这个类也是抽象类
抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类

2.static(静态)

被static修饰过的是存放在方法区中的,唯一性。建议通过类名.属性名和类名.方法名的方式进行访问。

2.1静态属性

语法

//修饰符 static 数据类型 变量名;
public static String name;

2.2静态方法

语法

//修饰符 static 返回值 方法名(参数){};
public static void Test(){
}

2.3静态代码块

语法

public static class Test{static{//写在类里面}
}

在类加载的时候就会执行里面的代码,与静态属性的优先级一样,要看谁在前面谁就先执行,只会运行一次,可以用来对某些属性进行初始化

public class Demo2 {static String name = "静态属性";//静态代码块与静态属性执行没有先后顺序,看谁写在前谁就先执行//静态代码块在类加载的时候就会被执行,且只会执行一次static {System.out.println(name);System.out.println("静态代码块");}
}

特点:
1.静态方法允许直接访问静态属性

2.静态方法不能直接访问非静态属性

3.静态方法没有this和super关键字

4.静态方法可以被继承,不能重写,没有多态

5.静态代码块在类加载的时候被执行,且在整个程序运行期间只会执行依次

 

3.final(最终)

不可进行更改

3.1final修饰的类,最终类

语法·

//修饰符 final class 类名{}
public final class Test{
}

final修饰的类不能被继承,但是可以继承别的类

 

3.2final修饰的方法,最终方法

语法

//修饰符 final 返回值 方法名(参数){}
public final void eat(){
}

final修饰的方法不能被子类重写

 

3.3final修饰的属性,最终变量(常量)

语法

//修饰符 final 类型 变量名;
public final int numbet = 1;

1.final修饰的基本数据类型,值不可变;

2.修饰的引用数据类型,地址不可变

 

final修饰的属性的3种赋值方式:

//1.直接赋值
public class Demo3 {public final int num = 1;}
//2.在静态代码块中进行赋值
public class Demo3 {public static final int num;//这个变量也要求是静态的static {num = 1;}}
//3.在构造方法中进行赋值
public class Demo3 {public final int num;public Demo3(){num = 1;}
}