zoukankan      html  css  js  c++  java
  • java知识学习19-继承

    面向对象的三大特征:封装、继承、多态

    继承:主要解决的问题就是“共性抽取”。

      设计原则:对于已投入使用的类,尽量不要修改。推荐定义一个新的类,来重复利用其中的共性内容,并添加改动新内容。

      继承特点:1、子类可拥有父类中所有非私有的属性与方法;2、子类也可拥有自己独有的属性与方法;3、子类通过关键字extends来继承父类

    格式:public class 子类名称 extends 父类名称 { ......}

    注:1、在继承关系中,若成员变量重名,则子类创建对象时,有两种访问方式。

        直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找。 如:Zi zi = new Zi(); zi.num;这里用的是优先子类,若子类没有num则找父类的

        间接通过成员方法访问成员变量:该方法属于谁,就优先有谁,没有则向上找;若方法也重名,则等号左边是谁就优先用谁。 如:Zi zi = new Zi(); zi.method(); 这里优先用子类的。

      2、若成员方法重名,访问规则:创建对象的是谁,就优先用谁,如果没有则向上找。

      注意:无论成员变量或方法,若没有都是向上找父类,不会向下找子类。

      

    当父类和子类的成员变量、子类的局部变量都重名的情况下,使用不同方式访问。

      

    重写:在继承关系中,父子的方法名一样,参数列表也一样。

      重写(override)与重载(overload)的区别:

        重写:方法名一样,参数列表也一样。也叫覆盖、覆写

        重载:方法名一样,参数列表不一样。

      重写注意事项:

        1、必须保证父子类之间方法名一样,参数列表也一样。

          @Override:该注解写在方法前面,可用来检测方法是不是正确覆盖,提高代码正确性。不写也不影响,只要重写正确。

        2、子类方法的返回值必须小于等于父类的返回值范围。 (返回值范围可根据引用类型继承关系判断)

          扩展:java.lang.Object类是所有类的基类,及祖宗类。

        3、子类方法的权限必须大于等于父类方法的权限修饰符。

          扩展:public > protected > (default) > private。 注:default不是关键字,是什么都不写,留空就好。

        

      super关键字:可理解为代表父类对象,通过该关键字可实现父类方法重写简化 。

        

    继承中的构造方法:

      1、子类构造方法当中有一个默认隐含的“super();”调用,所以一定是先调用父类的构造方法,后执行子类的构造方法。

      2、子类构造方法可以通过super关键字调用父类重载构造方法。

      3、super的父类构造调用,必须是子类构造方法的第一个语句。一个子类构造不能多次super父类构造。

      总结:子类必须调用父类的构造方法,不写则默认隐含的super();写了则用指定的super调用,super只能有一个,且还必须是第一个。

        

    super关键字的三种用法:

      

    this关键字的三种用法:

      

    this与super内存图解:

    继承的三个特点:

      1、Java语言是单继承的。即一个类的直接父类只能有唯一一个。

      2、Java语言可以多级继承。如:A继承B,B又继承C,...,即A的间接父类C

      3、一个子类的直接父类是唯一的,但一个父类可以拥有多个子类。

  • 相关阅读:
    IOS-SQLite3的封装
    IOS-SQLite3
    IOS-真机相关
    IOS-将任意对象存进数据库
    IOS-支付宝
    IOS-推送通知
    iOS-证书真机调试
    iOS-免证书真机调试
    iOS-沙盒路径
    Android之发送短信的两种方式
  • 原文地址:https://www.cnblogs.com/blogofzxf/p/13488663.html
Copyright © 2011-2022 走看看