文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java面向对象之多态

2019-03-28 01:24

关注

多态的简单理解:

student类继承了Person类,则student类的对象既是student又是person类

多态性具有两种展现的形式:

1.方法的多态性:

(1)方法的重载:同一个方法可以根据传入的参数的类型或者个数的不同实现不同的功能

(2)方法的覆写:同一个方法可能根据实现子类的不同有不同的实现

2.对象的多态性:

父类与子类实例之间的转换处理

(1)对象向上转型:父类 父类实例 =new 子类实例();自动完成转换

(2)对象向下转型:子类 子类实例 =new (子类)父类实例();强制完成转换

相关视频教程分享:java免费视频教程

多态的最终体现:

为父类引用变量可以指向子类对象

多态的前提是必须有子父类关系或者类实现接口关系,否则无法实现多态

在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法

多态的成员变量:

编译的时候,参考父类中哟没有这个变量,如果有就编译成功,如果没有就编译失败

运行的时候,运行的是父类中的变量值

成员变量编译运行皆看父类

多态的成员方法:

编译的时候,参考父类中有没有这个方法,如果有就编译成功,如果没有就编译失败

运行的时候。运行的是子类的重写方法

成员方法编译看父类,运行看子类

对象的两种转型方式的理解:

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();
	}
}

在这个代码中我们通过向上转型调用了一个子类特有的方法,但是会提示如下图:

1682965dd8ce0f96fc5f7db774c8e27.png

父类中没有定义Learning方法。但是我们又必须调用子类的特有的方法,此时就需要通过向下转型来实现

补充代码如下:

Student stu=(Student)p;//将p对象向下转型实现方法调用
		stu.Learning();

想学习更多相关教程请访问:java快速入门

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯