概述
一、多态的定义
一个对象变量可以指示多种实际类型的现象被称为多态。
二、对象变量
对象变量:除八种基本数据类型(byte、int、short、long、float、double、char、 boolean)定义的变量外,其余所有类型定义的变量都叫对象变量。
注意:
- java程序设计中的多态是指对象变量的多态。
- 不能将一个超类的引用赋值给子类的变量。
三、案例说明
以下我们定义了一个Person类做为父类,在该类中定义了一个selfIntroduce(自我介绍)抽象方法;此外还定义了Teacher、Student、Worker三个类分别去继承了Person类,并实现了selfIntroduce方法。在ActionTest类中我们将Student、Teacher、Worker三种不同类型的对象赋给了一个Person类型的对象数组people的元素,当做自我介绍的时候,Person类型的对象变量p可以分别调用Student、Teacher、Worker各自的selfIntroduce方法的这个过程就是多态。
package chapter_six;
public class ActionTest {
public static void main(String[] args) {
Person[] people = new Person[3];
people[0] = new Student("张三","计算机科学与技术");
people[1] = new Teacher("李四","高等数学");
people[2] = new Worker("王五",5000);
//所有人做自我介绍
for(Person p:people) {
p.selfIntroduce();
}
/**
* 输出结果:
*
*我叫张三,我是一位学生,主修计算机科学与技术
*我叫李四,我是一名教师,主讲高等数学
*我叫王五,我的月薪5000.0元
*/
}
}
/**
* 人类
*是一个抽象类
*/
abstract class Person{
private String name;
/**
* 自我介绍
*/
public abstract void selfIntroduce();
public Person(){
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
/**
* 学生
*/
class Student extends Person{
private String major;
public Student(String name,String major) {
super(name);
this.major = major;
}
@Override
public void selfIntroduce() {
// TODO Auto-generated method stub
System.out.println("我叫"+super.getName()+",我是一位学生,主修"+major);
}
}
/**
* 教师
*/
class Teacher extends Person{
private String lesson;
public Teacher(String name,String lesson) {
super(name);
this.lesson = lesson;
}
@Override
public void selfIntroduce() {
// TODO Auto-generated method stub
System.out.println("我叫"+super.getName()+",我是一名教师,主讲"+lesson);
}
}
/**
* 工人
*/
class Worker extends Person{
private double salary;
public Worker(String name,double salary) {
super(name);
this.salary = salary;
}
@Override
public void selfIntroduce() {
System.out.println("我叫"+super.getName()+",我的月薪"+salary+"元");
}
}
最后
以上就是寒冷柜子为你收集整理的java多态的全部内容,希望文章能够帮你解决java多态所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复