• 组合与继承


    组合关系:
        当一个自定义类1中出现了另一个自定义类2就称为这两个类为组合关系
        如果是在1的属性中创建了2,就是创建了2的对象引用,可以直接对该引用进行方法的调用以及属性的设置等,不过前提是2得有赋值(有引用指向该对象,如果是调用静态方法的话则不需要)

    继承关系:
        子类必须属于父类的一种时,才会继承
        父类抽取了子类与父类共性的内容,子类可以在父类的基础上扩展出新的属性和方法
        子类拥有父类的所有属性和方法,不需要重新定义,只要不是父类的私有成员就可以直接拿来用
        格式:
            public class 子类 extends 父类{
            }
        总结:1.父子类有共性 2.子类可以引用父类的非私有的属性和方法
        注意:如果没有重写的话子类中不要出现父类的属性和方法(出现了就重写),子类可以使用getset方法引用父类的被封装起来的属性。
        父是是基石,子类是扩展,子类可以使用父类中的元素,并且可以在此基础上延伸
        java支持单继承和多层继承,但是父类只能有一个。
        孙类间接继承父类(如果孙类要引用父类要怎么弄:孙类可以继承之上的所有方法,并且继承被重写后的方法,如果不想继承被重写后的方法就去直接继承父类)(如果孙类使用的方法不是对子类重写,就去查看父类,以此类推,不过继承是就近原则继承)
        
        如果类中方法被修饰为private,可以直接在本类中的另一个方法内用this.方法名 来直接引用
    方法重写:
        子类可以重写从父类继承(父方送房子)过来的方法(房子可以自己重新装修)但是重写之后子类就不能使用原来被继承的方法,而是使用重写之后的方法(房子被装修了不能直接变回原样)
        使用方法:
            Override
            1.方法名参数必须相同,返回值可以不同(类似方法的重载,只是这个是类与类之间的)
            2.访问权限相同或者子类的权限更大
            3.重写可以不在方法的上面写@Override(不违反规则),但是为了让人看明白这是重写的方法,还是在上面写比较好(自己建议)
            访问权限:public > 默认(无访问修饰符)

    子类父类创建先后顺序:
        先创建父类后创建子类,因为子类对象中包含了父类的对象空间,这样子类可以包含父类的属性方法,体现在调用子类的构造方法的时候会先调用父类的构造方法。(super如果是调用父类的构造方法的时候,一定要写在方法体内部的开头部分,否则会报错)

    this和super的使用
        this.成员变量  可以访问本类对象的成员
        supe.成员变量  没有这种用法
        this.成员方法  可以访问本类对象可以访问父类对象的成员方法(如果本类中没有方法就往上找)
        super.成员方法 可以访问父类对象的成员方法



    1.如果想在构造方法里使用组合类,就要先创建组合类的对象(如果被组合类的构造方法里有组合类的对象引用)

    2.如果组合的类中,组合类(pet)被创建了对象并且赋了值然后被组合类(person)也创建了对象并且类的内部有组合类的声明引用,就相当于在被组合类的内部创建了组合类的引用并且可以使用组合类,使用方法跟在main方法中使用的方法一样(组合类创建对象,然后将对象传到被组合类的参数中,就可以使用对象的内容)

    3.java支持多层继承。孙类可以使用父类的方法,也可以使用父类或者子类的getset方法,并且,方法的重写是就近原则,即:哪个重写离的最近就使用哪个重写的方法。如果没有被重写,子类没有定义,那么孙类使用的还是父类的方法。总之就是,父类子类孙类不能出现重名的方法,如果都出现的话就实现孙类的方法(即子类和孙类都重写了该方法),子类孙类在使用方法的时候,不是在类中使用super,而是在方法体里写。super是用在方法中用来引用上级的方法的

    4.如果在方法里写了super(),就说明该方法调用了父类的构造方法,并且是构造方法中的全部内容;如果是super(参数);就说名该方法调用了父类的带参构造方法,并且这种调用构造方法的方法在一个方法中只能用一个{super(参数)的含义是:直接在该方法所在的方法里引用父类的带参方法并且将里面参数传到本类的构造方法的参数中,并直接调用父类构造方法里的内容,这样子类在构造方法的时候就不用重复写这么多了,只要在参数里写上需要的参数就行,不过父类中没有的方法不能用,得自己添加}

    5.子类中实际上是有父类的,只是因为继承了所以不用写出来(子类对象中有父类的对象空间),所以需要用super去引用。super就是用来引用子类的父类对象空间中的父类方法的,起导向作用(标识)

    6. 就近原则:局部  > 本类成员  > 父类成员

  • 相关阅读:
    PostgreSQL 匹配字符串前缀
    Postgresql流复制+pgpool实现高可用
    PostgreSQL 使用Docker搭建流复制测试环境
    PostgreSQL 基于Docker的多实例安装
    PostgreSQL 基于日志的备份与还原
    PostgreSQL 利用pg_upgrade升级版本
    PostgreSQL 安装
    简单推荐系统的SQL实现
    读书笔记:集体智慧编程(1)
    Linux 光速入门
  • 原文地址:https://www.cnblogs.com/Yuanpp/p/8445641.html
Copyright © 2020-2023  润新知