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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Kirazx 中级黑马   /  2019-4-18 13:52  /  716 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

继承
         概念: 子类拥有父类的所有非私有信息
     extends
        public class Zi extends Fu{}
         子类和父类就由extends 建立起了父子关系
         Zi  
                 method
         Fu
                   show
     操作步骤:
                  1.new Fu
                           调show
                  2.new Zi
                         调method
                  3.zi 调用show(原因是你还没有书写格式语法extends ) 失败
                  4.添加上了extends 继承
                                zi 调用show

                  Person(人)
                      name   age  gender   
                          speak sout("說人话")

                    Student        
                        //  speak  sout("学生话")
            Teacher  
                           //   speak  sout("老师话")
                        Emp(员工)

         继承的特点:
                          子类有,父类有
                          找子类
                       
                          子类没有,父类有
                          找父类

                          子类没有,父类没有
                          报错

                      变量:
                                 先找局部变量
                                 如果局部变量不存在,找成员变量
                                 如果成员变量也不存在,找父类
                           如果你想直接去找成员变量:  this.变量
                           如果你想直接去找父类    :  super.变量
                       
         继承的好处:1.继承可以提高代码的复用性
                            2.提高了代码的维护性
                         
         产生弊端: 耦合性增强,独立性降低


###this和super
                 this 和super  3个使用的情况
                    1.成员变量   this -->找成员变量  super :找父类
                        2.成员方法   this -->找成员方法  super :找父类
                        3.构造方法
                                 每个构造方法默认都会在第一行有一个隐式的super() --> 调用父类的无参构造方法
                             思考:为什么要调用父类的构造方法   
                          回顾了基础知识
                                  如果有了有参构造-->无参构造就不存在了
                                  
                          this()调本类初始化方法
                          super() 调父类中的无参构造方法
                                         无论怎么调用,切记:一定需要对父类进行直接或者间接的初始化
                                     直接:super
                                         间接:通过this() -->找其他子类构造方法再通过其他子类构造方法去找父类进行初始化

0 个回复

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