java面向对象之多态【JAVA教程】,java,面向对象,多态
作者:搜教程发布时间:2019-11-30分类:JAVA教程浏览:41评论:0
多态的简朴明白:
student类继续了Person类,则student类的对象既是student又是person类
多态性具有两种展示的情势:
1.要领的多态性:
(1)要领的重载:同一个要领能够依据传入的参数的范例或许个数的差别完成差别的功用
(2)要领的覆写:同一个要领大概依据完成子类的差别有差别的完成
2.对象的多态性:
父类与子类实例之间的转换处置惩罚
(1)对象向上转型:父类 父类实例 =new 子类实例();自动完成转换
(2)对象向下转型:子类 子类实例 =new (子类)父类实例();强迫完成转换
相干视频教程分享:java免费视频教程
多态的终究表现:
1.为父类援用变量能够指向子类对象
2.多态的条件是必需有子父类关联或许类完成接口关联,不然没法完成多态
3.在运用多态后的父类援用变量挪用要领时,会挪用子类重写后的要领
多态的成员变量:
1.编译的时刻,参考父类中哟没有这个变量,假如有就编译胜利,假如没有就编译失利
2.运转的时刻,运转的是父类中的变量值
成员变量编译运转皆看父类
多态的成员要领:
1.编译的时刻,参考父类中有没有这个要领,假如有就编译胜利,假如没有就编译失利
2.运转的时刻。运转的是子类的重写要领
成员要领编译看父类,运转看子类
对象的两种转型体式格局的明白:
1.对象向上转型:
向上转型以后,子类对象只能挪用父类具有的要领,不能挪用子类单独具有的要领,经由过程向上转型完成多态性的运用
2.对象向下转型:
假如对象向上转型以后想要运用子类独占要领而父类没有的要领,须要运用对象的向下转型
代码演示:
public class Person { public void Eat(){ //在person类中定义一个吃的笼统要领 } } public class Student extends Person{ public void Eat(){ System.out.println("门生吃学校食堂");//重写父类中的笼统要领 } public void Learning() { System.out.println("门生在进修");//定义一个student类特有的要领 } } public class Test { public static void main(String[] args) { // TODO 自动生成的要领存根 Person p=new Student();//经由过程向上转型定义一个p对象 p.Eat();//这是子父类共有的要领 p.Learning(); } }
在这个代码中我们经由过程向上转型挪用了一个子类特有的要领,然则会提醒以下图:
父类中没有定义Learning要领。然则我们又必需挪用子类的特有的要领,此时就须要经由过程向下转型来完成
补充代码以下:
Student stu=(Student)p;//将p对象向下转型完成要领挪用 stu.Learning();
想进修更多相干教程请接见:java疾速入门
以上就是java面向对象之多态的细致内容,更多请关注ki4网别的相干文章!
相关推荐
- java经典面试题集锦(五)_JAVA教程,java,面试题
- java中的换行符是什么_JAVA教程,java,换行符
- Java中变量必须先定义后使用么_JAVA教程,java,变量
- java中怎么定义接口_JAVA教程,java,接口
- java中静态代码块有什么特点_JAVA教程,java,静态代码块
- java中return语句有什么作用_JAVA教程,java,return
- Java对文件的读写操作(图文详解)_JAVA教程,java
- java经典面试题集锦(四)_JAVA教程,java,面试题
- 八种基本数据类型分别是什么?_JAVA教程,java,基本数据类型
- java如何将字符串转为数组_JAVA教程,java,字符串,数组
你 发表评论:
欢迎- JAVA教程排行
- 最新文章
- 广而告之