首页新闻动态正文

面对对象-多态【黑马java培训】

更新时间:2019年07月26日 10时54分29秒 来源:黑马程序员论坛

1,多态
        封装
                1,私有化 --- 保证数据安全性
                2,抽取成方法 --- 提高代码的复用性和可维护性

        继承
                可以让类跟类之间产生关系
                可以抽取重复的代码到父类中。
                是多态的前提

        多态
                多种形态


        概述:
                Student s = new Student();
                真正的对象: new Student();
                左边的s:仅仅是一个接收变量而已。
                                 因为要方便以后的使用。

               
                Person p = new Student();
                //赋值给父类型的变量。

                //认为:父类类型的范围要比子类类型要大


        总结:
                不管是Student s = new Student();还是 Person p = new Student();
                对象永远是学生对象。
                只不过第一种方式,学生对象是学生形态。
                第二种方式学生对象是人形态。
        简单来说:
                同一个对象可以用不同的数据类型去接收。


,2.多态中成员的访问特点
        成员变量:
                编译看左边,运行看左边

        成员方法:
                编译看左边,运行看右边



        问:
                1.编译看左边到底看什么?
                        其实就是看父类中是否有这个变量或者方法,如果没有直接报错

                2.运行看左边/运行看右边,看的是什么?
                        如果是变量,运行看左边,输出的是左边这个类里面变量的值
                        如果是方法,运行看右边,实际上运行的方法是右边那个类中的方法。



3.多态的好处和弊端
        问:
                1.以后创建对象就是使用
                        Fu f = new Zi();
                        //不是的。因为如果用了这样的格式,不能使用子类的特有功能,很麻烦。
                        以后创建对象还是跟以前一样。

                好处:
                        如果你写一个方法,想让这个方法既能接收A类,又能接收B类。
                        在以前,只能写两个方法
                                public static void method(A类){
                               
                                }

                                public static void method(B类){
                               
                                }
                        现在学习了多态,那么可以把这两个方法合并成一个方法
                                public static void method(父类){
                               
                                }


4.多态的向上转型和向下转型
        向上转型:
                就是把一个小类型赋值给一个大的类型。
                Person p = new Student();

       
        向下转型:
                就是把一个大的类型转换为一个小类型。
                目的:
                        为了使用子类的特有功能。
                格式:
                        Person p = new Student();
                        Student s = (Student)p;

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!