前言:

其实我一直不太敢写这篇文章,原因是多态性牵扯的比较多,不太好写。

多态性本身其实很简单,其定义只有一句。但掌握多态性却并不容易,因为它本身看起来没什么用,却是很多结构的基石。比如接口和抽象类。因此,多态性的应用是非常广泛的。

本身没什么用,但十分重要,应用还十分广泛这就导致多态性有种“形散神聚”的意思,不太好学

参考价值:已完结、但不一定正确、仅供参考、但不能作为标准答案、等待重置


目录:

  1. 什么是多态性?

  2. 多态性和继承有什么关系?

  3. 多态性怎么使用?

什么是多态性?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class What {
public static void main(String[] args) {
Person p1 = new Chinese();//多态性
}
}

class Person{
//属性:
String name;
String sex;
int age;
//方法:
void talk() {
System.out.println("人会说话");
}
}
class Chinese extends Person{
//方法:
void talk() {
System.out.println("中国人会说汉语!");
}
}

==Person p1 = new Chinese();==就是多态性(也被称为对象的多态性)。

简单来说就是:声明一个父类的引用变量指向子类的对象。

多态和继承有什么关系?

继承是多态性的基石。或者说继承的方法重写是多态的基石

怎么使用多态性?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class What {
public static void main(String[] args) {
Person p1 = new Chinese();//多态性
p1.talk();//使用
}
}

class Person{
//属性:
String name;
String sex;
int age;
//方法:
void talk() {
System.out.println("人会说话");
}
}
class Chinese extends Person{
//方法:
void talk() {
System.out.println("中国人会说汉语!");
}
}

多态性的使用也被称为虚拟方法的使用。

  • 要点:
    1. 类型是父类
    2. 对象是子类
    3. 调用重写的方法调用的是子类的方法