java之基础

 1 public class CodeBlockTest {
 2   public static void main(String[] args) {
 3   Child child = new Child();
 4 }
 5 }
 6 class Father {
 7   public static String fatherStr1 = "fatherStr1(静态字段初始化值)";
 8 
 9   public String fatherStr2 = "fatherStr2(字段初始化值)";
10   static {
11     System.out.println("父类静态代码块:" + fatherStr1);
12     fatherStr1 = "fatherStr1(静态代码块赋值)";
13   }
14   {
15     System.out.println("父类构造代码块:" + fatherStr2);
16     fatherStr2 = "fatherStr2(构造代码块赋值)";
17   }
18   public Father() {
19   System.out.println("父类构造函数块:" + fatherStr2);
20   fatherStr2 = "fatherStr2(构造函数赋值)";
21   }
22 }
23 
24 
25 class Child extends Father {
26   public static String childStr1 = "childStr1(静态字段初始化值)";
27   public String childStr2 = "childStr2(字段初始化值)";
28   static {
29     System.out.println("子类静态代码块:" + childStr1);
30     childStr1 = "childStr1(静态代码块赋值)";
31   }
32   {
33     System.out.println("子类构造代码块:" + childStr2);
34     childStr2 = "childStr2(构造代码块赋值)";
35   }
36   public Child() {
37   System.out.println("子类构造函数:" + childStr2);
38   childStr2 = "childStr2(构造函数赋值)";
39   }
40 }
41 // 输出结果:
42 // 父类静态代码块:fatherStr1(静态字段初始化值)
43 // 子类静态代码块:childStr1(静态字段初始化值)
44 // 父类构造代码块:fatherStr2(字段初始化值)
45 // 父类构造函数块:fatherStr2(构造代码块赋值)
46 // 子类构造代码块:childStr2(字段初始化值)
47 // 子类构造函数:childStr2(构造代码块赋值)
View Code

初始化顺序(最终结果):

父类静态字段初始化
父类静态代码块
子类静态字段初始化
子类静态代码块
父类普通字段初始化
父类构造代码块
父类构造函数
子类普通字段初始化
子类构造代码块
子类构造函数

重写和重载:
overrride

1.方法名、参数、返回值类型相同
2.访问权限:子类>=父类;抛出异常:子类<=父类(子类可以不抛出异常)
3.存在于父类和子类间
overload
1.参数列表(个数,类型,顺序)不同
2.可以有不同的访问权限、抛出异常、返回值类型
3.存在于一个类中
接口和抽象类:
implements
1.只能有抽象方法(方法申明)和变量(公共的静态的常量 public static final)
2.设计的结果,主要用于抽象功能
extends
1.可以有具体的方法(方法申明、方法实现)和属性(普通变量)
2.重构的结果,主要用于抽象类别
1.不间断空格\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ;
2.半角空格(英文符号)\u0020,代码中常用的;
3.全角空格(中文符号)\u3000,中文文章中使用;
 

 

 

 

參考文章:

https://www.cnblogs.com/skywang12345/p/3324958.html

https://www.cnblogs.com/zsql/p/11115244.html

 

posted on 2020-07-20 08:43  小白苏  阅读(152)  评论(0编辑  收藏  举报