更新时间:2021-08-25 11:40:18 来源:极悦 浏览812次
OOP(面向对象编程)的四个基本概念是继承、抽象、多态和封装。对于刚接触 OOP 的人来说,一开始要掌握 OOP 的最后3个基本概念可能有点困难(因为继承有点容易理解)。
多态性是对象具有多种形式的能力。
可以通过多于任何Java对象 一个IS-A测试被认为是多态- tutorialspoint。这意味着任何子类对象都可以在其父层次结构中采用任何形式的类,当然也可以采用任何形式的类。这实际上意味着子类对象可以分配给其父层次结构中的任何类引用,当然也可以分配给它本身。
例如:假设 Student 类是 Person 类的子类
学生 student = new Student()
Person person = new Student()
当使用父类引用来引用子类对象时,OOP 中多态性的最常见用途发生。实际上这里是在谈论动态多态性(我将在下面描述)。
通常提到的多态性有两种类型。
动态多态
静态多态
这也称为运行时多态性、动态绑定、运行时绑定、后期绑定和方法覆盖。这里有许多形式发生在 不同的类中。
这就是通常所说的“多态性”。让我简单地解释一下——
让我们假设在类层次结构(父子关系)中的类中有具有相同方法签名的方法,这些方法具有不同的形式(这称为方法覆盖)。
然后当一个对象被分配给一个类引用并且当该对象的一个方法被调用时,该对象的类中的方法就会被执行。不是引用类的方法(如果引用是父类)。
这里发生的事情是因为对象创建是在运行时完成的,所以应该执行的方法的形式(对象中的方法)只能在运行时决定。
例如:Java 代码
class Person {
public void教学(){
System.out.println("人可以教");
}
}
class Teacher extends Person {
public void talk() {
System.out.println("老师可以在学校教书");
}
}
public class TestTeacher {
public static void main(String args[]) {
Person person = new Person(); //Person 引用和对象
Person another_person = new Teacher(); //Person 引用,Teacher 对象
Teacher Teacher = new Teacher(); //教师参考和obj.
person.teach();//输出:人可以教
// 在这里你可以看到Teacher 对象的方法被执行了
even- // - 尽管使用了Person 引用
another_person.teach();//输出:老师可以在学校教书
Teacher.teach();//输出:老师可以在学校教书
}
}
这也称为编译时多态性、静态绑定、编译时绑定、早期绑定和方法重载。这里有许多形式发生在同一个类中。
如果我简单地解释一下..
这实际上是方法重载。方法重载是具有多个方法名称相同但参数不同(返回类型可能相同也可能不同)的方法。这里在调用方法时,编译器编译器根据调用时传递的参数选择要调用的方法。这发生在编译时。
例如:Java 代码
类计算器 {
void add(int a, int b) {
System.out.println(a+b);
}
void add(int a, int b, int c) {
System.out.println(a+b+c);
}
}
public class Demo {
public static void main(String args[]) {
Calculatorcalculator = new Calculator();
// 有 2 个参数的方法称为
calculator.add(10, 20); //输出:30
// 有 3 个参数的方法称为
calculator.add(10, 20, 30); //输出:60
}
}
以上就是极悦小编介绍的"面向对象多态的解释",希望对大家有帮助,想了解更多可查看Java教程。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习