@@ -23,7 +23,7 @@ switch (variable or an integer expression)
> Switch Case 语句主要用于 [break 语句](https://beginnersbook.com/2017/08/java-break-statement/),即使它是可选的。我们将首先看到一个没有 break 语句的例子,然后我们将讨论 switch case 和 break
## 一个简单的开关案例
## 一个简单的`switch`案例
```java
publicclassSwitchCaseExample1{
...
...
@@ -51,14 +51,14 @@ public class SwitchCaseExample1 {
Default:Valueis:2
```
**说明:**在开关中我给出了一个表达式,你也可以给变量。我给了 num + 2,其中 num 值是 2,并且在添加之后表达式得到 4.由于没有用值 4 定义的情况,所以执行了默认情况。这就是为什么我们应该在 switch case 中使用 default,这样如果没有匹配条件的 catch,则执行默认块。
**说明:**在`switch`中我给出了一个表达式,你也可以给变量。我给了 num + 2,其中 num 值是 2,并且在添加之后表达式得到 4.由于没有用值 4 定义的情况,所以执行了默认情况。这就是为什么我们应该在 switch case 中使用 default,这样如果没有匹配条件的 catch,则执行默认块。
super 关键字指的是直接父类的对象。在学习 super 关键字之前,您必须具备 Java 中[继承的知识,以便您能够理解本指南中给出的示例。](https://beginnersbook.com/2013/03/inheritance-in-java/)
## 使用超级关键字
## 使用`super`关键字
1)当父类和子类都具有相同名称的成员时访问父类的数据成员
2)显式调用父类
...
...
@@ -12,7 +12,7 @@ super 关键字指的是直接父类的对象。在学习 super 关键字之前
**现在让我们借助示例**详细讨论它们:
### 1)如何使用 super 关键字访问父类的变量
### 1)如何使用`super`关键字访问父类的变量
当子类中的变量已存在于父类中时,为了访问父类的变量,您需要使用 super 关键字。
...
...
@@ -79,7 +79,7 @@ class Subclass extends Superclass
100
正如您通过使用 super.num 所看到的,我们访问了父类的 num 变量。
### 2)使用 super 关键字来调用父类的构造函数
### 2)使用`super`关键字来调用父类的构造函数
当我们创建子类的对象时,new 关键字调用子类的[构造函数](https://beginnersbook.com/2013/03/constructors-in-java/"Constructors in Java – A complete study!!"),它隐式调用父类的构造函数。因此,当我们创建子类的对象时执行的顺序是:首先执行父类构造函数,然后执行子类构造函数。这是因为编译器本身添加了 super()(这会调用父类的无参数构造函数)作为子类构造函数中的第一个语句。
1)super()(或参数化的 super 必须是构造函数中的第一个语句,否则你将得到编译错误:“构造函数调用必须是构造函数中的第一个语句”
2)当我们在构造函数中明确地放置 super 时,java 编译器没有调用父类的默认 no-arg 构造函数。
### 3)如何在方法覆盖的情况下使用 super 关键字
### 3)如何在方法覆盖的情况下使用`super`关键字
当子类声明父类中已存在的相同方法时,这称为[方法覆盖](https://beginnersbook.com/2014/01/method-overriding-in-java-with-example/)。我们将在本系列的下一个教程中学习方法覆盖。现在您只需要记住这一点:当子类重写父类的方法时,从子类对象调用该方法总是调用该方法的子类版本。但是通过使用这样的 super 关键字:super.method_name 可以调用父类的方法(被覆盖的方法)。在方法覆盖的情况下,使用这些术语:重写方法:父类的方法重写方法:子类的方法让我们举一个例子来理解这个概念:
...
...
@@ -231,7 +231,7 @@ Child class method
Parentclassmethod
```
#### 如果子类没有覆盖任何方法怎么办:不需要超级
#### 如果子类没有覆盖任何方法怎么办:不需要`super`
当子类没有覆盖父类方法时,我们不需要使用 super 关键字来调用父类方法。这是因为在这种情况下我们只有每个方法的一个版本,子类可以访问父类方法,所以我们可以直接调用父类的方法而不使用 super。
[超级关键字](https://beginnersbook.com/2014/07/super-keyword-in-java-with-example/)用于调用父类方法/构造函数。 `super.myMethod()`调用基类的 myMethod()方法,而`super()`调用基类的[构造函数](https://beginnersbook.com/2013/03/constructors-in-java/)。让我们看一下使用 super in 方法 Overriding。
Java 支持[多线程](https://beginnersbook.com/2013/03/multithreading-in-java/"Multithreading in java with examples")。多线程是一种 Java 功能,允许并发执行程序的两个或多个部分,以最大限度地利用 CPU。