多态
时间:2019-03-25
本文章向大家介绍多态,主要包括多态使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package com.byxy;
public class Person {
private String name;
private int age;
private char gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(String name, int age, char gender) {
super();
this.name = name;
this.age = age;
this.gender = gender;
}
public void print() {
System.out.print("我是"+name+"我年龄是"+age+"岁,我性别是:"+gender);
}
public void learn() {
}
}
public class Teacher extends Person {
private String majorField;
public String getMajorField() {
return majorField;
}
public void setMajorField(String majorField) {
this.majorField = majorField;
}
public Teacher() {
super();
// TODO Auto-generated constructor stub
}
public Teacher(String name, int age, char gender) {
super(name, age, gender);
// TODO Auto-generated constructor stub
}
public Teacher(String majorField) {
super();
this.majorField = majorField;
}
@Override
public void print() {
// TODO Auto-generated method stub
super.print();
System.out.println(",我的授课方向是:"+this.majorField);
}
@Override
public void learn() {
// TODO Auto-generated method stub
super.learn();
System.out.println("1.表达准确");
System.out.println("2.讲解思路清晰");
}
}
package com.byxy;
public class Student extends Person {
private System grade;
public System getGrade() {
return grade;
}
public void setGrade(System grade) {
this.grade = grade;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, int age, char gender) {
super(name, age, gender);
// TODO Auto-generated constructor stub
}
public Student(System grade) {
super();
this.grade = grade;
}
@Override
public void print() {
// TODO Auto-generated method stub
super.print();
System.out.println(",我的授课方向是:"+this.grade);
}
@Override
public void learn() {
// TODO Auto-generated method stub
super.learn();
System.out.println("1.不迟到.早退.旷课");
System.out.println("2.课堂认真学习");
}
}
//创建的监督类
package com.byxy;
public class Supervisor {
public void Supervise(Person p) {
System.out.println("开始监督.........");
p.learn();
}
}
package com.byxy;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
\p对象是person类所有子类的对象
Supervisor supervisor=new Supervisor();
supervisor.Supervise(new Student());
supervisor.Supervise(new Teacher());
}
}
在上面的督导类中的监督方法supervise(Person p)中可以看到,这个监督方法所带、、I。参数是Person对象,在测试类中调用这个方法时给的实际对象是Teacher对象和Student对象,在运行“p. learn();"语句的时候,Java虚拟机能够根据实际给出的对象正确找到要执行的方法,也就是说***p对象实际可以是Teacher对象,也可以是Student对象,以及所有继承了Person类的子类对象,这种现象就叫多态,也就是多种表现形态,P就有多种表现形态。***
多态产生必须有以下条件:①必须有继承;②必须有方法重写;③必须是父类声明,实际是子类对象。 ,
多态使得代码高效重用,也使得系统的可扩展性增强。
- lambda+reduce的一句艰深代码
- CRT连接mysql数据库操作
- 基于springMVC拦截器实现操作日志统计
- datepicker小插件(日期时间 & 日期 & 月份)
- 封装好的MAP工具类和HBASE工具类
- JSP+ajax+springMVC+MayBatis处理excel上传导入
- 绚丽的javascript拾色器(不兼容IE8及以下)
- 魔波广告恶意病毒简析
- javascript生成.xls文件(兼容IE&Chrome&Firefox)
- 没用的程序设计题-美甲帮笔试题
- MongoDB Java
- JSON.parse()和JSON.stringify()
- jquery获取主机地址和端口
- 前端验证码绘制(canvas)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android应用禁止屏幕休眠的3种方法
- Flutter 实现下拉刷新上拉加载的示例代码
- [- C++趣玩篇1 -] 从打印开始说起
- Android实现蓝牙(BlueTooth)设备检测连接
- JQuery 入门学习(三)
- Android实现美团APP的底部滑动菜单
- 正则十八式-第二式:控鹤擒龙
- android实现手写签名功能
- [普及]程序自启动方式 - ActiveX
- Android WebView实现顶部进度条
- 通过一个简单的例子学习Angular Injection Token工作原理
- Android 自定义球型水波纹带圆弧进度效果(实例代码)
- Android自定义View实现弹幕效果
- 使用Injection Token将字符串类型的参数注入到类的构造函数里
- 联想Y480 ubuntu安装有线驱动