继承、抽象类模板设计模式

定义一个类

修饰符 class 类名{
    // 成员变量
    // 成员方法
    // 构造方法
    // 代码块
    // 内部类
}

创建对象: 类名 对象名 = new 类名(实参);
使用对象:
    访问成员变量: 对象名.成员变量名
    访问成员方法:
        无返回值的方法: 对象名.方法名(实参);
        有返回值的方法:
            直接调用: 对象名.方法名(实参);
            赋值调用: 数据类型 变量名 = 对象名.方法名(实参);
            输出调用: System.out.println(对象名.方法名(实参));

匿名对象

  • 概述:匿名对象指的就是没有名字的对象.

  • 特点: 只能使用一次

继承的概述

  • 继承在java中指的是“一个类”可以“继承自”“另一个类”。 "被继承的类"叫做: 父类/超类/基类,"继承其他类的类"叫做:子类。继承后,“子类”中就“拥有”了“父类”中所有的成员(成员变量、成员方法)。 “子类就不需要再定义了”。

继承的好处

  • 提高代码的复用性;

  • 使类与类之间产生了关系,作为多态的前提条件

继承的格式

修饰符 class 子类名 extends 父类名{
    
}

子类无法继承父类的构造方法

子类可以继承父类的私有成员,但无法直接访问,可以间接访问

- 私有成员变量: 通过set\get方法间接访问

- 私有成员方法: 通过其他公共的方法间接访问

子类可以继承父类的非私有成员,并且可以直接访问

访问规则: 优先在子类中查找,如果在子类中找到了就直接使用子类的,如果没有找到就去父类中查找...

方法重写的概念

概念:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),该方法就是重写的方法。

重写的注意事项

  • 方法重写是发生在父子类之间的关系。

  • 子类方法重写父类方法,返回值类型、方法名和参数列表都要一模一样。

  • 使用场景:父类的方法,子类有不同的实现,那么子类就需要重写父类的该方法

  • 子类方法重写父类方法,必须要保证权限大于等于父类权限。 访问权限从大到小: public > protected > (默认) > private

  • 使用@Override注解,检验是否重写成功,重写注解校验!

  • 建议重写方法都加上这个注解,一方面可以提高代码的可读性,一方面可以防止重写出错!

this关键字的三种用法

  • 介绍:this可以访问本类的成员属性、成员方法、构造方法;

  • this访问本类成员变量: this.成员变量

this访问本类成员方法: this.成员方法名(实参);

this访问本类构造方法: 在本类的一个构造方法中,调用本类另一个构造方法

super关键字的三种用法

  • 介绍:super可以访问父类的成员属性、成员方法、构造方法;

  • super访问父类的成员变量: super.父类成员变量名

super的注意事项

super访问成员变量和成员方法: 优先去父类中找,如果有就直接使用,如果没有就去爷爷类中找,如果有,就用,依次类推...

super的注意事项二

子类的构造方法默认会调用父类的空参构造方法,如果父类中没有空参构造方法,只定义了有参构造方法,会编译报错

抽象方法的概述和定义

概述: 没有方法体,并且使用abstract修饰的方法就是抽象方法 

抽象类的注意事项

抽象类不能被创建对象,只能用来做“父类”,被子类继承的,体现的是模板思想 。

模板设计模式

  • 设计模式: 设计模式就是解决一些问题时的固定思路,也就是代码设计思路经验的总结。

  • 模板思想:

    • 模板是通用的东西,抽象类体现的是模板思想。

    • 抽象类中可以是具体实现的方法(通用模板),也可以有抽象方法(填充模板)。

    • 模板中能决定的行为就定义成有方法体的方法,让需要使用模板的类(子类)直接继承调用即可。

    • 模板中不能决定的行为定义成抽象方法,让需要使用模板的类(子类)负责重写抽象方法实现.

final关键字的概述和使用

  • 概述: final是一个关键字,表示最终,不可变的意思,可以用来修饰类,修饰方法,修饰变量

  • 特点:

    • 被final修饰的类不能被继承

    • 被final修饰的方法不能被重写

    • 被final修饰的变量不能重复赋值,只能赋值一次

修饰符 final 返回值类型 方法名(形成列表){ 方法体 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值