A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大蓝鲸Java 中级黑马   /  2019-7-12 12:25  /  567 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马