一、    为什么需要继承:
    若多个类中都需要一些属性和方法,那么就可以将属性和方法抽取到一个父类中,需要的子类可以通过extends关键字去继承这个父类后拥有相应的属性和方法。
    类、数组、方法----引用数据类型
二、 继承的流程:
  1、 编写父类:Animal
  2、 编写子类:Dog、Cat、Pig
  3、 在子类中通过extends关键字去继承父类:
三、 继承的注意事项:
  1. 父类中的属性和方法只有使用protected、public修饰的才能被子类继承。
  2. 当编写一个类时,若使用了extends关键字继承某个父类,该父类就是当前类的直接父类;
      若没有使用extends关键字继承某个父类,系统会自动继承object类,object就是该类的直接父类;所有类都会直接或间接继承object类。
  3. 子类继承父类后,只要父类是使用protected、public修饰的方法都能被子类继承,若子类对父类的方法不满意可以通过@Override标识重写父类的方法。
  4. 子类中重写父类方法,子类中的方法访问(范围)修饰符只能是与父类相同或更大,而不能比父类的修饰符更小。
  5. Java是一个单继承的开发语言,即一个类只能继承一个父类,但是可以实现多个接口。
  6. Final修饰的类是终态类,是不能被其他类继承的;final修饰的方法是终态方法,是不能被子类重写(覆盖)。
四、 继承后的初始化流程:
  1. 初始化父类的属性:
  2. 初始化父类的静态代码块:
  3. 初始化子类的属性:
  4. 初始化子类的静态代码块:
  5. 初始化父类的构造方法:
  6. 初始化子类的构造方法:
  7. 初始化子类或父类的实例方法:
五、 Super关键字:
  Super是“超级,父类”的意思,通过该关键字可以去访问父类中的资源(属性、构造方法、实例方法)。
  1. Super访问父类的属性:
    格式:super.属性名
    举例:super.name
  2. Super访问父类的实例方法:
    格式:super.方法名()
    举例:super.publicMethod()
  3. Super访问父类的构造方法:
    Super();
  注意:
    1) 只能在子类的构造方法中调用父类的构造方法,而不能在实例方法中调用父类的构造方法。
    2) 调用父类构造方法的语句之前不能有其他语句。注释除外
    3) This();调用自己类的构造方法;在一个构造方法中调用另一个构造方法,调用构造方法的语句前不能有其他语句。
六、 抽象方法和抽象类:
  1. 抽象方法:
    Java当中的方法有两个部分构成:定义和实现,既有定义部分和实现部分的方法称为实现了的方法;
    只有定义部分而没有实现部分的方法称为抽象方法,抽象方法需要使用abstract关键字修饰,{}用;代替。
  2. 抽象类:
    一个类中若包含了抽象方法,那么这个类就必须使用abstract修饰符将他声明为抽象类;抽象类中可以包含抽象方法、实例方法。也可以没有抽象方法。
  3. 抽象类的注意事项:
    1) 抽象类和接口都是不能被实例化的,即不能创建抽象类和接口的对象。
    2) 一个类若继承了一个抽象类或实现接口,该类有两种选择,要么将自己声明为抽象类,要么实现所有的抽象方法。

java OOP第03章_继承、抽象类和抽象方法的更多相关文章

  1. Java oop 第13章_多线程

    第13章_多线程 一.   多线程相关的概念:  程序:由某种编程语言开发可执行某些功能的代码组合,它是静态的概念.   进程:当程序被执行时的过程可以理解为讲程序从外存调入内存的过程,会为每一个程序 ...

  2. java oop第07章_集合框架

    一. 什么是集合: 在Java中提供了一些可以保存同一数据类型的数据集称为集合,就是规定了一些集合的规范(接口.抽象类.实现类)及方法, 方便我们程序在保存数据时进行增.删.改.查操作,编程更加高效. ...

  3. java oop第06章_异常处理

    一. 异常的概念: 若程序都按我们事先设定的计划运行为正常执行,但通常会出现我们事先预料之外的其他情况,称为程序发生异常, 在java中会对一些可能出现异常的代码进行分类,达到尽量对可能发生的异常进行 ...

  4. Java oop第05章_多态、接口

    一. 为什么需要接口? Java中当一个类继承父类时,最多也只能继承一个父类,扩展性会受到一定的限制,为了弥补这一缺陷,Java又提供了一种新的引用数据类型分类,叫接口. 一个类只能继承一个父类,但可 ...

  5. java oop第11章_反射、BaseDao的进一步改造

      引言:从Java5开始,Java中引用了一个新的概念反射,当程序运行时,能动态感知到程序中拥有的所以信息,这个获取信息的过程是采用反射机制来完成. 一.       Class类: Class类用 ...

  6. “全栈2019”Java第五十一章:继承与final关键字详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. “全栈2019”Java第四十七章:继承与方法

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. 第03章_基本的SELECT语句

    第03章_基本的SELECT语句 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖.在这几十年里,无数的技术.产业在这片江湖 ...

  9. Java OOP——第四章 异常

    1. 接口:接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来. 接口是更加抽象的抽象的类, 抽象类里的方法可以有方法体, 接口里的所有方法都没有方法体. ...

随机推荐

  1. 1085 Perfect Sequence (25 分)

    Given a sequence of positive integers and another positive integer p. The sequence is said to be a p ...

  2. HTML中列表中元素居中问题

    想让列表<table>中某一行元素居中的话,单纯使用<align  = 'center'>是达不到效果的,需要先将该行进行合并,使用colspan属性. <html> ...

  3. JUC源码分析-集合篇:并发类容器介绍

    JUC源码分析-集合篇:并发类容器介绍 同步类容器是 线程安全 的,如 Vector.HashTable 等容器的同步功能都是由 Collections.synchronizedMap 等工厂方法去创 ...

  4. MFS分布式文件系统【1】概述

    注:以下内容来自互联网 MFS文件系统概论 MFS是linux下的开源存储系统,是由波兰人开发的.MFS文件系统能够实现RAID的功能,不但能够节约存储成本,而且不逊于专业的存储系统,能够实现在线扩展 ...

  5. MySQL在win10以及linux下数据库的备份以及还原

    MySQL在win环境或者linux下的命令都是一样的,只是路径不一致而已 MySQL的备份 (非必须)命令行进入MySQL的bin目录 输入命令:mysqldump -u userName -p d ...

  6. 小程序onclick的写法?

    bindtap="bindAction" 调用bindAction函数即可

  7. python--序列化:json、pickle、shelva

    序列化 数据类型--->str 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 反序列化 str--->数据类型 序列化三大方法:json *** ...

  8. C预处理之宏定义

    #include <stdio.h> //定义不带参数的宏 #define PI 3.14 /*********************************************** ...

  9. 微信小程序picker下拉绑定数据

    页面部分 <picker mode = "selector" bindchange="bindPickerChange" value="{{pr ...

  10. ES6形参默认值

    * 形参的默认值----当不传入参数的时候默认使用形参里的默认值 function Point(x = ,y = ) { this.x = x; this.y = y; } //定义一个点的坐标 fu ...