zoukankan      html  css  js  c++  java
  • java学习--基础知识进阶第二天--笔记

    今日内容
    继承
    匿名对象和final关键字
    抽象类

    继承
    继承的概述:
    现实世界中的继承是儿子继承父辈的财产
    Java语言中的继承使类与类之间产生了关系(子父类),子类可以继承父类的非私有的成员,(私有成员不能被继承、构造方法不能被继承也不能被重写,可以被子类调用)

    继承体系的由来:
    多个类拥有共同的成员变量和成员方法,共同的部分向上抽取到父类中,然后让多个类去继承父类,就形成了继承体系

    继承的格式:
    class 子类 extends 父类{
    }

    注:需要使用到extends关键字

    继承的特点:
    (1)Java中的类只支持单继承,不支持多继承
    class A{}
    class B{}
    class C extends A,B{}// 错误的,这是多继承
    (2)Java中的类支持多层继承
    class A{}
    class B extends A{}
    class C extends B{}
    (3)子类和父类是一个相对的概念
    (4)一个类可以被多个类继承
    class A{}
    class B extends A{}
    class C extends A{}

    继承中成员变量的特点:
    遵循是就近原则:谁离我近就使用谁
    继承中成员方法的特点:
    遵循的是就近原则
    子类中没有这个方法,就使用父类中的方法
    如果子类中重写了这个方法,就使用子类重写之后的方法


    this和super关键字:
    this:代表的是当前对象的引用
    super:代表的是父类的那片空间

    this:
    (1)当局部变量和成员变量同名时,通过this.的方式标识这是成员变量
    (2)调用本类中的成员变量和成员方法
    (3)在构造方法中第一行this(参数列表)访问本类中的其他构造方法
    super:
    (1)在类中调用父类中的成员变量和成员方法
    (2)在构造方法中第一行super(参数列表)调用父类的构造方法

    继承中构造方法的执行顺序:
    先执行父类的构造方法,再执行子类的构造方法

    每一个构造方法的第一行默认有一个super(),它调用的是父类的空参构造方法
    如果手动给出了this(参数)或者super(参数)这样的代码,手动调用本类中的其他构造方法或者父类的构造方法,默认的super()就没有了

    方法重写(Override)和重载(Overload)的区别
    重载:在一个类中,方法名相同,参数列表不同(个数不同、类型不同、顺序不同)的方法,和其他(返回值)的无关
    重写:在两个类(子父类)中,子类的方法对父类中继承的方法进行了重新实现的过程,方法的声明一般不变化

    重写的注意事项:
    父类私有的方法不能被重写
    父类的构造方法不能被重写

    两小
    子类重写的方法的返回值类型小于等于父类方法的返回值类型
    子类重写的方法抛出的异常要小于等于(少于等于)父类方法抛出的异常
    两同
    方法名相同
    参数列表相同
    一大
    子类重写的方法的权限大于等于父类方法的权限
    public>protected>默认>private

    继承的优缺点
    优点:
    提高代码的复用性
    提高代码的可维护性
    缺点:
    耦合性增强

    匿名对象和final关键字
    匿名对象
    Student s = new Student();
    new Student();// 匿名对象

    运用场景:
    当对象只使用一次的时候

    (1)只调用一次方法的情况
    new Student().study();
    (2)调用方法时当做方法的实参传递
    method(new Student());
    (3)当做方法的返回值
    public static Student method(Student s) {
    return new Student();
    }

    final关键字
    final是最终的意思,可以修饰类、方法和变量

    final修饰类,该类不能被继承
    final修饰方法,该方法不能被重写
    final修饰变量,该变量不能被重新赋值,变成了常量

    抽象类
    抽象类的由来
    多个类有共性的内容,将共性的内容向上抽取,得到父类,具体的子类的功能是具体的,但是在父类中没法明确具体的功能
    ,既然不明确我们就干脆不写方法体,而没有方法体的方法必须使用abstract关键字来修饰,这种称为抽象方法,而有
    抽象方法的类必须声明为抽象类。

    抽象类的特点:
    (1)一个类中如果有抽象方法,该类必须是抽象类
    (2)抽象类和抽象方法都是用abstract关键字修饰的
    (3)抽象类不能创建对象(不能实例化)
    (4)普通类与抽象类的关系是继承关系,抽象类一般都是父类,普通类一般都是继承抽象类
    (5)一个类继承了抽象类,必须实现抽象类中的所有抽象方法,否则该类就也必须是抽象类
    (6)抽象类中可以有非抽象方法

    抽象类中成员的特点:
    成员变量
    可以有
    成员方法
    抽象方法,可以有
    非抽象方法,可以有
    构造方法


    abstract关键字不能和哪些关键字共存?
    final
    private
    static


  • 相关阅读:
    github的使用
    QPalette的用法
    QTimer的用法
    QStatusBar的用法
    QWhatsThis的用法
    QString::​arg的用法
    qt中ui的 使用介绍
    安全协议IPSEC
    安全协议ssl
    对称加密和非对称加密
  • 原文地址:https://www.cnblogs.com/bigorangehasc/p/8639276.html
Copyright © 2011-2022 走看看