• 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


  • 相关阅读:
    day84:luffy:优惠活动策略&用户认证&购物车商品的勾选/结算
    day83:luffy:添加购物车&导航栏购物车数字显示&购物车页面展示
    day82:luffy:课程详情页面显示&章节和课时显示&视频播放组件&CKEditor富文本编辑器
    day81:luffy:课程分类页面&课程信息页面&指定分类显示课程信息&分页显示课程信息
    day80:luffy:短信sdk接入&点击获取验证码&注册功能的实现&Celery实现短信发送功能
    day79:luffy:注册之对手机号的验证&实现基本的注册功能逻辑&点击获取验证码&redis
    day78:luffy:前端对于token的认证&滑动验证码的实现
    day77:luffy:导航栏的实现&DjangoRestFramework JWT&多条件登录
    day76:luffy:项目前端环境搭建&轮播图的实现
    day75:luffy:路飞学城项目后端环境搭建&Git相关知识点
  • 原文地址:https://www.cnblogs.com/bigorangehasc/p/8639276.html
Copyright © 2020-2023  润新知