文章目录

  • 前言
  • 一、继承
    • 1、继承的格式
    • 2、继承后成员的访问规则
      • 2.1、继承后构造方法的访问规则:
      • 2.2、继承后私有成员的访问规则:
      • 2.3、继承后非私有成员的访问规则:
    • 3、this和super关键字的三种用法
      • 3.1、this的三种用法:
      • 3.2、super的三种用法:
    • 4、方法的重写
    • 5、继承的特点
  • 二、抽象类
    • 1、抽象类的定义及使用
    • 2、抽象方法的定义及使用
  • 三、模板设计模式:
  • 四、final关键字
    • 1、final修饰成员变量
    • 2、final修饰成员方法
    • 3、final修饰类

前言

提示:这里介绍继承、抽象类,模板设计模式和final关键字的知识点


提示:以下是本篇文章正文内容,下面案例可供参考

一、继承

概述:一个类继承自另一个类,该类为子类,被继承的类为父类。
好处:①提高代码的复用性,②使类与类之间产生了关系

1、继承的格式

修饰符 子类名 extends 父类名{}
public  Zi   extends  Fu{}

2、继承后成员的访问规则

2.1、继承后构造方法的访问规则:

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

2.2、继承后私有成员的访问规则:

继承后子类不能直接访问父类的私有成员,但是可以间接访问;

2.3、继承后非私有成员的访问规则:

继承后子类可以直接访问父类的非私有成员;
访问规则:优先在子类中查找,如果找到了就直接用子类的成员如果没有找到,则去父类中查找;

3、this和super关键字的三种用法

3.1、this的三种用法:

介绍:this可以访问成员变量,成员方法和构造方法;

①、访问成员变量:this.成员变量名;使用场景:区别同名的局部变量和成员变量②、访问成员方法:this.成员方法名(实参);③、访问构造方法:this(实参):可以在本类中的一个构造方法中调用另一个构造方法
注意:1、只能在本类的构造方法中调用本类的其他构造方法;2、this调用本类的构造方法只能放在构造方法的第一行;3、两个本类的构造方法不能相互之间调用

3.2、super的三种用法:

介绍:super可以访问父类的成员变量,成员方法和构造方法;

①、访问成员变量:super.成员变量名;使用场景:区别同名的子父类成员变量②、访问成员方法:super.成员方法名(实参);使用场景:区别同名的子父类成员方法;③、访问构造方法:super(实参)
注意:1、super访问父类的构造方法一定要放在子类的构造方法的第一行;2、子类构造方法会默认调用父类的空参构造方法;3、在子类构造方法中调用父类构造方法,其实就是为了初始化从父类继承过来的属性;super使用的注意事项:1、super访问成员变量和成员方法,优先去父类中找,如果没有则区爷爷类中找,如果没有,则以此类推;Java顶层父类是Object,所有的类都直接或间接继承了Object类;2、子类的构造方法会默认调用父类的空参构造方法,如果父类中只定义了有参构造方法,而没有定义空参构造方法,则编译会报错;

4、方法的重写

概述:子类中存在和父类一样的方法(返回值类型,方法名和参数列表都一致),该方法就是重写父类的方法;

重写的注意事项:1、方法重写是发生在父子类中的;2、重写的方法,他的返回值类型,方法名和参数列表都是一致的;3、使用@Override注解,可以检验重写是否成功,重写注解校验;建议重写方法都加上这个注解,一方面可以提高代码的可读性,一方面可以防止出错;4、子父类重写方法是,必须要遵循子类的权限大于等于父类的权限5、使用场景:父类的方法,子类有不同的实现,那么子类就需要重写父类的方法;

5、继承的特点

1、Java继承只支持单继承,不支持多继承;
class A { }
class B { }
class C1 extends A {// class C2 extends A, B {// error }
}
2、一个类只能有一个父类,可以有多个子类;
class A { }
class c1 extends A{}
class c2 extends A{}3、可以多层继承
class A { }
class B { }
class A extends B{}
class B extends C{}

二、抽象类

1、抽象类的定义及使用

概述:没有方法体,被abstract修饰的类就是抽象类;
特点:
①、有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法;
②、强制要求子类重写

格式:修饰符 abstract class 类名{}public abstract class Fu{}抽象类中的成员:成员变量成员方法构造方法抽象方法抽象类的注意事项:1、抽象类不能被创建对象,只能做父类,被子类继承;体现了模板设计思想;2、抽象类不能被创建对象,但可以有构造方法----->为从父类继承过来的属性进行初始化;3、抽象类中可以没有抽象方法,但抽象方法必须定义在抽象类中4、子类继承抽象类后,必须重写抽象类中的所有抽象方法,否则子类也必须是一个抽象类;

2、抽象方法的定义及使用

格式:修饰符 abstract 返回值类型 方法名(参数);public abstract   void    method(参数);

三、模板设计模式:

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

模板思想:1、模板是通用的东西,抽象类体现的就是模板思想;2、抽象类中可以是具体的方法(通用模板),也可以是抽象方法(填充模板);3、模板中不能决定的行为就定义成抽象方法,让需要使用模板的子类去继承重写实现;4、模板中能决定的行为就定义成有方法体的方法,让需要使用模板的子类直接继承调用即可;
案例:需求:按照下述要求,使用代码实现 定义新、老司机类,新、老司机类都有开车功能,开车的步骤一样,但驾驶时的姿势不同 新司机:开门,点火,双手紧握方向盘,刹车,熄火 老司机:开门,点 火,右手握方向盘左手抽烟,刹车,熄火public abstract class Driver{public void driver(){//System.out.println()的简写sout("开门..");sout("点火..");zishi();sout("刹车..");sout("熄火");}public abstract void zishi();
}class newDriver extends Driver{@Overridepublic void zishi(){sout("双手紧握方向盘");}
}class oldDriver extends Driver{@Overridepublic void zishi(){sout("右手握方向盘左手抽烟");}
}

四、final关键字

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

1、final修饰成员变量

格式:修饰符 final int num = 10;public final int num; num = 10;
特点:1、被final修饰的变量,只能被赋值一次,不能重复赋值;2、一般在开发中,被final修饰的变量都需要大写;(final修饰的变量其实就是自定义的常量);

2、final修饰成员方法

格式:修饰符 final 返回值类型 method(形参列表){方法体....}public final   void    method(形参列表){方法体...}
特点:被final修饰的方法不能被重写;

3、final修饰类

格式:修饰符 final class 类名{}public final class Fu{}
特点:被final修饰的类不能被继承;

java后续基础内容正在快马加鞭更新中,内容若有误,各位码友提出建设性意见。


1-继承、模板设计模式、抽象类、final相关推荐

  1. 7.Java_模板设计模式---抽象类的实际应用(咖啡和茶的冲泡法),基于抽象类,核心是封装算法。引入钩子方法。开闭原则。23种设计模式

    基于抽象类的模板设计模式,核心是封装算法. 1.模板方法定义了一个算法的步骤,允许子类为一个或多个步骤提供具体实现. 2.模板(模板方法)模式:(典型:Servlet),AQS 在一个方法中定义算法的 ...

  2. 继承、抽象类、模板设计模式、_nal关键字

    继承.抽象类.模板设计模式.final关键字 今日内容介绍 1. 面向对象基础知识回顾* 如何定义类public class Student{}* 如何创建类的对象Student s = new Stu ...

  3. 【26天高效学完Java编程】Day11:继承、抽象类、模板设计模式详解

    本专栏将从基础开始,循序渐进,由浅入深讲解Java的基本使用,希望大家都能够从中有所收获,也请大家多多支持. 专栏地址:26天高效学习Java编程 相关软件地址:软件地址 所有代码地址:代码地址 如果 ...

  4. 01-复习回顾、继承、抽象类、模板设计模式

    day01[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习 类的创建------>必须掌握 对象的创建和使用------>必须掌握 匿名对象 继承 如何继承-继承的格式--- ...

  5. 面向对象之继承,抽象类、模板设计模式

    第1章 复习回顾 1.1 类和对象 定义一个类 格式: 修饰符 class 类名{//类中的五大成分.1.成员变量2.构造方法3.成员方法4.内部类5.代码块 } 代码: public class S ...

  6. 【复习回顾、继承、抽象类、模板设计模式】

    day01[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习------>必须掌握 继承 继承的格式------>必须掌握 继承后成员访问特点------>必须掌握 抽象 ...

  7. day01-【复习回顾、继承、抽象类、模板设计模式】

    复习总结[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习------>必须掌握 继承 继承的格式------>必须掌握 继承后成员访问特点------>必须掌握 抽象类 ...

  8. 【复习回顾、继承、抽象类模板设计模式】

    day01[复习回顾.继承.抽象类模板设计模式] 今日内容 面向对象复习------>必须掌握 继承 继承的格式------>必须掌握 继承后成员访问特点------>必须掌握 th ...

  9. java 抽象属性 设计_Java 抽象类与模板设计模式详解

    抽象类 抽象类是为了方法覆写而提供的类结构,因为其无法自身直接进行对象实例化操作,所以在实际应用中,抽象类主要目的是进行过程操作使用,当你要使用抽象类进行开发的时候,往往都是在你设计中需要解决类继承问 ...

最新文章

  1. python3 获取当前路径_如何使用python3获取当前路径及os.path.dirname的使用
  2. 今晚我们通宵学习SpringCloud!涨姿势!
  3. 十八、中断之独立按键
  4. CSP认证201712-4 行车路线[C++题解]:单源最短路变型、拆点、好题!
  5. canvas在舞台上点击后图片旋转_View绘制系列(10)Canvas基础变换
  6. Spring,Reactor和ElasticSearch:从回调到React流
  7. spring boot 源码分析(七) 事件机制 之 SpringApplicationEvent
  8. 服务器路径和本地路径在使用cd时候的区别
  9. Html之实例练习(轮播图片、放大镜效果、面板拖动)
  10. 309. zui佳买卖股票时机含冷冻期(JavaScript)
  11. 为什么空集是集合的子集_「离散数学」1.41.5特殊的集合和集合的计算
  12. 影视解说短视频制作教程,从找素材到配音,上手很简单
  13. Hexo主题制作指南
  14. 哒哒租车系统(慕课网学习)
  15. 选择适合esx服务器的性能,Esxtop: 使用性能指标负责ESX的故障诊断
  16. PLC模拟量输出 模拟量转换FC S_RTI
  17. php返回json数组前面出现乱码“锘縶”解决办法
  18. 数据结构之二叉树的前中后序遍历以及层序遍历
  19. #洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯
  20. 2022年制冷与空调设备安装修理考试练习题及答案

热门文章

  1. assertThat用法看这一篇就够了!
  2. 优化大数据量查询方案——SpringBoot(Cloud)整合ES
  3. Unity滑入Button/按键/UI范围检测
  4. SVN版本控制器的使用说明(详细过程)
  5. 2012服务器IP地址怎么修改,2012服务器IP地址怎么修改
  6. 服务器上登录网页ip地址,服务器ip作为网页地址
  7. 【pvcreate】创建pv
  8. 使用Ambassador容器构建docker容器集群
  9. Keras中的各种Callback函数示例(含Checkpoint模型的保存、读取示例)-----记录
  10. 主机宝服务器默认页修改,主机宝服务器默认页