提交 ea2e586a 编写于 作者: W wizardforcel

2019-11-26 12:28:11

上级 025a17bf
...@@ -14,18 +14,18 @@ Java 中的“所有类的母亲”是`Object`类。 Java 中的每个类都继 ...@@ -14,18 +14,18 @@ Java 中的“所有类的母亲”是`Object`类。 Java 中的每个类都继
![All Classes in the Java Platform are Descendants of Object](img/2aba758c937fce23c46327191be945c2.jpg) ![All Classes in the Java Platform are Descendants of Object](img/2aba758c937fce23c46327191be945c2.jpg)
Java 平台中的所有类都是对象的后代(imagesourtesy [Oracle](https://oracle.com) Java 平台中的所有类都是对象的后代(图像来自 [Oracle](https://oracle.com)
Java 具有单个继承模型,这意味着每个类都只有一个并且只有一个直接超类。 Java 具有单个继承模型,这意味着每个类都只有一个并且只有一个直接超类。
子类继承其父级的所有 _ 公共 _ 和 _ 受保护的 _ 成员,无论该子类位于哪个包中。如果该子类与其父级位于同一包中,则它也继承 父成员的 _ 包私有 _ 成员。 您可以按原样使用继承的成员,替换它们,隐藏它们,或用新成员补充它们: 子类继承其父级的所有公共和受保护的成员,无论该子类位于哪个包中。如果该子类与其父级位于同一包中,则它也继承父成员的私有成员。 您可以按原样使用继承的成员,替换它们,隐藏它们,或用新成员补充它们:
* 继承的字段可以像其他任何字段一样直接使用。 * 继承的字段可以像其他任何字段一样直接使用。
* 您可以在子类中声明一个与超类中的名字相同的字段,因此 _ 隐藏了 _(不推荐)。 * 您可以在子类中声明一个与超类中的名字相同的字段,因此隐藏了(不推荐)。
* 您可以在子类中声明不在超类中的新字段。 * 您可以在子类中声明不在超类中的新字段。
* 继承的方法可以直接使用。 * 继承的方法可以直接使用。
* 您可以在子类中编写一个新的 _ 实例 _ 方法,该方法具有与超类中的签名相同的签名,因此 _ 将覆盖 _ * 您可以在子类中编写一个新的实例方法,该方法具有与超类中的签名相同的签名,因此将覆盖
* 您可以在子类中编写一种新的 _ 静态 _ 方法,该方法具有与超类中的签名相同的签名,因此 _ 隐藏了 _ * 您可以在子类中编写一种新的静态方法,该方法具有与超类中的签名相同的签名,因此隐藏了
* 您可以在子类中声明不在超类中的新方法。 * 您可以在子类中声明不在超类中的新方法。
* 您可以编写一个隐式或使用关键字`super`来调用超类的构造函数的子类构造函数。 * 您可以编写一个隐式或使用关键字`super`来调用超类的构造函数的子类构造函数。
...@@ -33,7 +33,7 @@ Java 具有单个继承模型,这意味着每个类都只有一个并且只有 ...@@ -33,7 +33,7 @@ Java 具有单个继承模型,这意味着每个类都只有一个并且只有
## Java 继承示例 ## Java 继承示例
在下面的示例中,我们创建 3 个类。 超类`Point`表示二维空间中具有 x 和 y 坐标的点。 在下面的示例中,我们创建 3 个类。 超类`Point`表示二维空间中具有`x``y`坐标的点。
```java ```java
package net.javatutorial; package net.javatutorial;
...@@ -70,7 +70,7 @@ public class Point { ...@@ -70,7 +70,7 @@ public class Point {
``` ```
`ColoredPoint`是一个子类,它扩展了`Point`的所有属性和方法,并添加了一个附加字段`colorName`。 注意这是如何完成的–我们使用关键字**扩展**来告诉我们要从哪个类派生 `ColoredPoint`是一个子类,它扩展了`Point`的所有属性和方法,并添加了一个附加字段`colorName`。 注意这是如何完成的–我们使用关键字`extends`来告诉我们要从哪个类派生
```java ```java
package net.javatutorial; package net.javatutorial;
...@@ -97,13 +97,13 @@ public class ColoredPoint extends Point { ...@@ -97,13 +97,13 @@ public class ColoredPoint extends Point {
``` ```
最后是一个测试继承的程序。 首先,我们创建一个类型为`ColoredPoint`的新`Point`。 请注意关键字 **instanceof 的用法。 这样,我们可以检查对象是否为某种类型。 一旦确定点的类型为`ColoredPoint`,就可以使用以下方法显式地进行类型转换:** 最后是一个测试继承的程序。 首先,我们创建一个类型为`ColoredPoint`的新`Point`。 请注意关键字`instanceof`的用法。 这样,我们可以检查对象是否为某种类型。 一旦确定点的类型为`ColoredPoint`,就可以使用以下方法显式地进行类型转换:
```java ```java
ColoredPoint coloredPoint = (ColoredPoint)point; ColoredPoint coloredPoint = (ColoredPoint)point;
``` ```
现在我们可以访问新属性 colorName 现在我们可以访问新属性`colorName`
```java ```java
package net.javatutorial; package net.javatutorial;
......
...@@ -6,19 +6,19 @@ ...@@ -6,19 +6,19 @@
## 什么是抽象 ## 什么是抽象
抽象是向用户隐藏实现细节的过程。 Оnly 功能将提供给用户。 在 Java 中,使用抽象类和接口来实现抽象。 我们对 Java 接口有更详细的说明,如果您需要有关接口的更多信息,请[首先阅读本教程](https://javatutorial.net/java-interface-example) 抽象是向用户隐藏实现细节的过程。 只有功能将提供给用户。 在 Java 中,使用抽象类和接口来实现抽象。 我们对 Java 接口有更详细的说明,如果您需要有关接口的更多信息,请[首先阅读本教程](https://javatutorial.net/java-interface-example)
抽象是[面向对象编程(OOP)](https://javatutorial.net/java-oop)背后的四个主要概念之一。 OOP 问题在求职面试中很常见,因此您可能会在下次 Java 求职面试中遇到有关抽象的问题。 抽象是[面向对象编程(OOP)](https://javatutorial.net/java-oop)背后的四个主要概念之一。 OOP 问题在求职面试中很常见,因此您可能会在下次 Java 求职面试中遇到有关抽象的问题。
## Java 抽象示例 ## Java 抽象示例
举一个抽象的例子,我们将创建一个名为`Employee`的超类和两个子类-`Contractor``FullTimeEmployee`。 这两个子类都有共同的属性可以共享,例如雇员的姓名和每小时将支付给该人的金额。 承包商和全职员工之间的主要区别是-他们在公司工作的时间。 全职员工每天持续工作 8 个小时,承包商的工作时间可能会有所不同。 举一个抽象的例子,我们将创建一个名为`Employee`的超类和两个子类 - `Contractor``FullTimeEmployee`。 这两个子类都有共同的属性可以共享,例如雇员的姓名和每小时将支付给该人的金额。 承包商和全职员工之间的主要区别是 - 他们在公司工作的时间。 全职员工每天持续工作 8 个小时,承包商的工作时间可能会有所不同。
![Java abstract class example](img/7d6c855cb50cb5ae300a6e65dbb450c4.jpg) ![Java abstract class example](img/7d6c855cb50cb5ae300a6e65dbb450c4.jpg)
Java 抽象类示例 Java 抽象类示例
首先创建超类`Employee`。 注意在类定义中**抽象**关键字的用法。 这将类标记为抽象,这意味着它不能直接实例化。 我们将称为`calculateSalary()`的方法定义为抽象方法。 这样,您可以将此方法的实现留给`Employee`类的继承者。 首先创建超类`Employee`。 注意在类定义中`abstract`关键字的用法。 这将类标记为抽象,这意味着它不能直接实例化。 我们将称为`calculateSalary()`的方法定义为抽象方法。 这样,您可以将此方法的实现留给`Employee`类的继承者。
```java ```java
package net.javatutorial; package net.javatutorial;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
Java 多态示例 Java 多态示例
当我们调用 makeSound()方法时,通用动物类将输出一些抽象文本: 当我们调用`makeSound()`方法时,通用动物类将输出一些抽象文本:
```java ```java
package net.javatutorial; package net.javatutorial;
......
...@@ -4,13 +4,13 @@ ...@@ -4,13 +4,13 @@
本文通过示例演示了 Java 中方法重载和方法覆盖之间的区别 本文通过示例演示了 Java 中方法重载和方法覆盖之间的区别
**方法重载****方法重载**都是在各种 Java 实现中高度使用的 OOP(面向对象编程)概念。 在本文中,我们已经写了关于[OPT]的 [4 个主要概念的文章。 如果您不熟悉 OOP,请先查看此文章。](https://javatutorial.net/java-oop) **方法重载****方法覆盖**都是在各种 Java 实现中高度使用的 OOP(面向对象编程)概念。 在本文中,我们已经写了关于 OOP 的 4 个主要概念的文章。 如果您不熟悉 OOP,请先查看[此文章](https://javatutorial.net/java-oop)
方法重载与方法重载是一个常见的 Java 工作面试问题。 去面试,我们不能不知道有什么区别。 方法重载与方法重载是一个常见的 Java 工作面试问题。 去面试,我们不能不知道有什么区别。
## 什么是方法重载? ## 什么是方法重载?
如下面的示例所示,方法重载使我们能够使用**相同名称,相同或不同返回类型**的多个方法。 方法重载的重要之处在于,对于同一个返回类型,所有这些方法必须具有**不同的参数。 通常的做法是保留参数最多的方法的实现,而其他方法(参数较少的)仅重定向到“ big”方法,为缺少的参数提供默认值,如下所示:** 如下面的示例所示,方法重载使我们能够使用**相同名称,相同或不同返回类型**的多个方法。 方法重载的重要之处在于,对于同一个返回类型,所有这些方法必须具有**不同的参数**。 通常的做法是保留参数最多的方法的实现,而其他方法(参数较少的)仅重定向到较多方法,为缺少的参数提供默认值,如下所示:
```java ```java
public int calculate(int data[]) { public int calculate(int data[]) {
...@@ -104,4 +104,4 @@ public class Dog extends Animal{ ...@@ -104,4 +104,4 @@ public class Dog extends Animal{
} }
``` ```
请注意@Override 注释的用法。 这不是强制性的,但是最好对被覆盖的方法进行注释,以提高代码的可读性。 请注意`@Override`注释的用法。 这不是强制性的,但是最好对被覆盖的方法进行注释,以提高代码的可读性。
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,7 @@ Java 中的控制流语句允许您在满足特殊条件时运行或跳过代码 ...@@ -6,7 +6,7 @@ Java 中的控制流语句允许您在满足特殊条件时运行或跳过代码
## `if`语句 ## `if`语句
Java 中的``if''语句的工作原理与大多数编程语言完全相同。 借助“如果”,您可以选择在满足预定义条件时执行特定的代码块。 Java 中“ if”语句的结构如下所示: Java 中的`if`语句的工作原理与大多数编程语言完全相同。 借助`if`,您可以选择在满足预定义条件时执行特定的代码块。 Java 中`if`语句的结构如下所示:
```java ```java
if (condition) { if (condition) {
...@@ -14,7 +14,7 @@ if (condition) { ...@@ -14,7 +14,7 @@ if (condition) {
} }
``` ```
条件是布尔值。 布尔值意味着它可以是 true 或 false。 例如,您可以将数学方程式作为条件。 看这个完整的例子: 条件是布尔值。 布尔值意味着它可以是`true``false`。 例如,您可以将数学方程式作为条件。 看这个完整的例子:
```java ```java
public class FlowControlExample { public class FlowControlExample {
...@@ -36,23 +36,23 @@ Peter is 2 years old ...@@ -36,23 +36,23 @@ Peter is 2 years old
Peter is a baby Peter is a baby
``` ```
在上面的示例中,我们检查年龄是否小于 4。将年龄设置为 2,布尔条件 2 &lt; 4 为 true,结果我们打印“ Peter is a baby”。 如果我们将年龄更改为大于 3 的任何值,则该块中的代码将不再执行,并且不会打印“彼得是婴儿” 在上面的示例中,我们检查年龄是否小于 4。将年龄设置为 2,布尔条件`2 < 4``true`,结果我们打印`"Peter is a baby"`。 如果我们将年龄更改为大于 3 的任何值,则该块中的代码将不再执行,并且不会打印`"Peter is a baby"`
## Java 中的比较运算符 ## Java 中的比较运算符
使用此运算符创建布尔结果 使用此运算符创建布尔结果
&lt;小于 `<`小于
&lt; =小于或等于 `<=`小于或等于
&gt;大于 `>`大于
&gt; =大于或等于 `>=`大于或等于
==等于 `==`等于
!=等于 `!=`等于
## Java 中的条件运算符 ## Java 中的条件运算符
...@@ -105,9 +105,9 @@ Peter is 10 years old ...@@ -105,9 +105,9 @@ Peter is 10 years old
Peter is not a baby anymore Peter is not a baby anymore
``` ```
因为我们给年龄的值大于 3,所以执行 else 语句 因为我们给年龄的值大于 3,所以执行`else`语句
我将再展示一个带有“ if else”语句和条件运算符的示例 我将再展示一个带有`if else`语句和条件运算符的示例
```java ```java
public class FlowControlExample { public class FlowControlExample {
...@@ -132,7 +132,7 @@ public class FlowControlExample { ...@@ -132,7 +132,7 @@ public class FlowControlExample {
## `switch`语句 ## `switch`语句
在某些情况下,您可以避免在代码中使用多个 if-s 并使代码看起来更好。 为此,可以使用 switch 语句。 看下面的 java `switch`示例 在某些情况下,您可以避免在代码中使用多个 if-s 并使代码看起来更好。 为此,可以使用`switch`语句。 看下面的 java `switch`示例
```java ```java
public class SwitchExample { public class SwitchExample {
...@@ -156,6 +156,6 @@ public class SwitchExample { ...@@ -156,6 +156,6 @@ public class SwitchExample {
} }
``` ```
`switch`有一把钥匙和一个或多个箱子。 在我们的示例中,键为 numOfAngles ,当我们将 3、4 和 5 用作 switch 语句的值时,我们处理停止点。 如果我们传递的值不同于 3、4 或 5 ,则默认执行。 另请注意,在每种情况下,中断。 如果我们不包括 break,则程序将运行到下一种情况。 例如,如果我们删除情况 3 的中断,则在上面的示例中将执行情况 3 和情况 4。 `switch`有一把键和一个或多个情况。 在我们的示例中,键为`numOfAngles`,当我们将 3、4 和 5 用作`switch`语句的值时,我们处理停止点。 如果我们传递的值不同于 3、4 或 5 ,则默认执行。 另请注意,在每种情况下,中断。 如果我们不包括`break`,则程序将运行到下一种情况。 例如,如果我们删除情况 3 的中断,则在上面的示例中将执行情况 3 和情况 4。
在我的下一个教程 [Java 循环](http://javatutorial.net/java-loops "Java Loops")中,我将解释如何在 Java 中使用循环。 在我的下一个教程 [Java 循环](http://javatutorial.net/java-loops "Java Loops")中,我将解释如何在 Java 中使用循环。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册