修复图片

master
高宏宇 2 years ago
parent 744ffc33f5
commit 5d51ff1562

@ -140,7 +140,7 @@ Character类的`Character.isDigit(char)``Character.isLetter(char)`这些函
#### 2.1.3. 数值类封装类型的常量
![image-20230311093817254](/home/danny/.config/Typora/typora-user-images/image-20230311093817254.png)
![image-20230311093817254](img/image-20230311093817254.png)
例如Integer和Double其他数值类一样都有MAX_VALUE和MIN_VALUE两个常量且是静态的。

@ -547,14 +547,11 @@ classDiagram
}
class Orange{
+toString()
+printInfo()
}
```
有三个类
有三个类Fruit是父类Apple和Orange都从Fruit扩展而来且都覆盖了其toString()方法。
```Java
class Fruit {
@ -573,6 +570,10 @@ class Orange extends Fruit {
public String toString() {
return "This is an orange.";
}
public void printInfo() {
System.out.println("My name is Orange.");
}
}
public class Test {
@ -585,31 +586,27 @@ public class Test {
}
```
注意分析主函数中的 `Fruit fruit = new Apple();`这一行代码。变量类型是Fruit而实际的对象是Apple注意Apple是Fruit的子类。这样类型都不一样可以赋值吗这样做是完全合法的多态的一个重要用法是用父类的引用变量类引用指向子类的对象。
这样理解可能会好一些:
### 5.2. 复杂一点的例子
1. 变量类型声明是**调用能力声明**
2. 对一个对象的能力声明并不一定是该对象的全部能力;
3. 子类型对象的能力一定不小于父类型对象的能力;
我们先来看看一个例子:
上面例子中真实的对象是Apple能力声明是Fruit。因为Apple的能力不小于Fruit因此我用Fruit类型声明的变量去调用Apple的对象不存在任何问题。但 是因为能力声明的限制只能调用Fruit这个类型所具备的能力例如Orange类型有一个printInfo()函数,就无法在 Fruit的引用变量上调用
```java
class Fruit {
public String toString() {
return "This is fruit.";
}
}
class Apple extends Fruit {
public String toString() {
return "This is an apple.";
}
}
class Orange extends Fruit {
public String toString() {
return "This is an orange.";
}
}
上面的例子有些抽象,我们举一个生活中具体的例子:
### 5.2. 复杂一点的例子
我们先来看看一个例子:
```java
public class Test {
public static void main(String[] args) {
Apple apple = new Apple();

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Loading…
Cancel
Save