继承、抽象类、模板设计模式、final关键字

本文介绍了Java中的继承机制,包括语法、限制和特点,重点讲解了抽象类、抽象方法的概念,以及方法重写和final关键字的应用。通过实例演示了如何利用模板设计模式提升代码复用,并强调了抽象类在子类设计中的角色。
 继承概述
      在编程语言中,继承指的是子类继承父类的属性和行为,继承能够提高我们代码的复用性,减少代码的冗余。
      语法格式
          Java 提供了 extends 关键字用于继承。
          public class 父类 {
              //...
          }
          public class 子类 extends 父类 {
              //...
          }
 子类不能继承的内容
      子类不能继承父类的构造方法,因为构造方法的方法名要求和类名一致。
      父类中私有成员子类可以继承,只是无法直接访问,可以间接访问(通过 getter & setter)。
 继承后成员访问的特点
      成员变量
          不同名,没有任何影响
          同名,优先访问的是子类的成员变量,要想访问到父类的成员变量,需要使用 super 关键字进行访问。
      成员方法
          不同名,没有任何影响
          同名,子类覆盖了父类的访问,这种现象我们称之为访问的重写
          方法重写
              指的是在子父类中出现了一模一样的方法,此时子类的方法会覆盖父类的方法,执行的时候以子类为准。
          \@Override 注解,作用是在编译期检查方法是否符合重写规范,如果不符合,编译器会报错。
      构造方法
          子类虽然不能继承父类的构造方法,但是可以调用的,调用父类的构造方法是为了初始化父类的数据。
          要调用父类的构造方法,使用 super(参数),要调用自己的构造方法,使用 this(参数)
 单继承
      Java 只支持单继承,不支持多继承,支持多层继承。
      单继承指的是一个类只能有一个父类,但一个类可以有多个子类。
 抽象类和抽象方法的概述
      在某些特定的时刻,一个类中的某个方法,被它所有的子类都重写了,那么我们认为这个方法的方法体就失去了意义。
      虽然方法体失去了意义,但是方法签名任然有用,作用是规范子类。
      Java 允许一个方法没有方法体,只有方法的签名。这种方法叫做抽象方法,但是抽象方法必须要写在抽象类中。
 抽象类和抽象方法的定义
      Java 提供了一个关键字 abstract 用于定义抽象。
      //抽象类的定义
      public abstract class 类名 {
          //抽象方法的定义
          public abstract 返回值类型 方法名(形参列表...);
      }
      注意:抽象方法不能被定义成私有的!!!
      注意事项:
          - 抽象类不能创建对象
          - 子类继承了抽象父类,必须要将父类中所有的抽象方法全部重写
          - 抽象类中可以有构造方法,作用是初始化抽象类中的成员变量
          - 抽象类中可以没有抽象方法,但是有抽象方法的类,一定是抽象类
 抽象类的意义
      抽象类存在的意义就是给子类继承。
 模板设计模式
      什么是模板设计模式
          定义一个算法的骨架,具体的操作可以延迟到子类中实现。
 final 关键字
      final 表示的是最终的,不可改变的,可以用于修饰类、方法、变量
      修饰类:
          被 final 修饰的类不能被其他类继承(不能有子类)
      修饰方法:
          被 final 修饰的方法不能被子类重写
      修饰变量:
          被 final 修饰的变量就是常量
          局部变量
              - 基本数据类型:不能重新赋值
              - 引用数据类型:不能改变地址值
          成员变量
              - 必须在对象使用之前完成初始化
                  - 直接初始化
                  - 构造初始化
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YYDS97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值