Java由浅入深讲解继承下

目录
  • 1.代码块初始化
  • 2.protected关键字
  • 3.final关键字
  • 4.Java中允许的继承方式

本篇紧接上一篇内容继续,还是从继承里的细节开始

1.代码块初始化

关于代码块的定义和使用因为之前已经进行过介绍,所以这里就不再赘述,我们所关注的点是父类和子类中的代码块在运行时候的先后顺序是怎样的

首先还是在父类以及子类中添加代码块,如下:

//父类
 {
     System.out.println("父类实例代码块");
 }
 static {
     System.out.println("父类静态代码块");
 }
 public Plant() {
     System.out.println("父类构造方法");
 }
//子类
{
     System.out.println("子类实例代码块");
}
static {
     System.out.println("子类静态代码块");
}
public Tree() {
     System.out.println("子类构造方法");
}

我们在main方法中实例化子类对象后来看一下结果:

静态代码块依旧是最先被执行的,然后是父类的实例代码块和构造方法,最后是子类的实例代码块和构造方法

静态代码块由于只执行一次,所以如果再实例化一次子类对象的话父类和子类的静态代码块都不会再执行

2.protected关键字

之前的访问修饰限定符中还遗留了一个protected,这里把这个坑填上,procted在包访问权限的基础上多了一个权限:不同包中的子类可以访问父类的成员

假设Plant和Tree分别在两个包中,那么Plant中protected修饰的成员依旧可以在Tree中使用super来进行访问

需要注意的一点:父类必须是用public修饰,否则访问权限不够,不同包的两个类根本无法构成继承关系

4个访问修饰限定符都讲完了,这里作一个总结:

访问范围 private default protected public
同一包中的同一类
同一包中的不同类 ×
不同包中的子类 × ×
不同包中的非子类 × × ×

3.final关键字

final关键字同样是用来修饰类、方法以及变量的,作用如下:

修饰变量:成为常量,无法被修改

修饰方法:不能被重写

修饰类:不能作为父类被其它类继承

4.Java中允许的继承方式

单继承:A继承B

多层继承:A继承B,B继承C、C继承D......

不同类继承同一个父类:A继承B,C也继承B

但是Java中不允许一个类继承多个父类(即C++中的多继承)

Java继承的内容结束,后面就是多态的内容,完

到此这篇关于Java由浅入深讲解继承下的文章就介绍到这了,更多相关Java继承内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 学生视角看Java 面向对象的继承本质

    1.什么是继承? (1)用来提高代码的复用性 (2)将相同的功能模块封装到方法中需要使用时调用方法达到代码复用的目的 (3)通过继承将多个类中的相同的类容摘取出来,变成一个新类,让其他类和当前的新类产生关系,达到代码复用性的目的 注意:Java是单继承与c++有区别 ,c++可以多继承. 2.继承的格式 关键字extends 3.继承的特性 *子类拥有父类非 private 的属性.方法. *子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. *子类可以用自己的方式实现父类的方法. *Ja

  • Java全面分析面向对象之继承

    目录 继承 什么是继承呢? 子类访问父类的成员变量 子类访问父类非同名成员变量 子类访问父类同名成员变量 子类访问父类的成员方法 子类访问父类的非同名方法 子类访问父类的同名方法 super关键字 super访问父类成员变量 super访问父类成员方法 创建构造方法 super与this的区别 顺序 详解访问修饰限定符 继承方式与组合 继承方式 组合 继承 什么是继承呢? 继承(Inheritance)是一种联结类与类的层次模型.指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口

  • Java 继承与多态超详细梳理

    目录 一.继承 1.继承的概念 2.继承的语法 3.父类成员访问 (1)子类中访问父类的成员变量 (2)子类中访问父类的成员方法 4.super关键字 5.子类构造方法 6.super和this 7.代码块执行顺序 8.继承方式 9.final关键字 10.继承和组合 二.多态 1.向上转型 2.重写 3.多态 一.继承 1.继承的概念 继承机制:是面向对象程序设计是代码可以复用的最重要手段,允许程序员在保持原有类特性的基础上进行扩展,增加新的功能,产生的新类,成为派生类/子类.继承主要解决的问

  • 一篇文章超详细的介绍Java继承

    目录 前言 继承 继承的优点 重写和隐藏父类方法 重写父类中的方法 隐藏父类中的方法 方法重写和隐藏后的修饰符 子类访问父类私有成员 使用super关键字 使用super调用父类的无参数构造方法/有参数构造方法 附:继承的使用和认识 总结 前言 继承是面向对象语法的三大特征之一.继承可以降低代码编写的冗余度,提高编程的效率.通过继承,子类获得了父类的成员变量和方法.一个子类如何继承父类的字段和方法,如何修改从父类继承过来的子类的方法呢.今天我们开始学习有关Java继承的知识. 继承 继承就是子类

  • 解析JavaSE的继承和多态

    目录 1.继承 1.子类继承了父类,获得父类的全部Field和方法. 2.子类继承了父类,额外增加新的Field和方法 3.子类继承了父类,重写父类中的方法 4.super限定,在子类调用父类中被覆盖的方法 2.多态 3.引用变量的强制类型转换 4.面试题 1.Java中实现多态的机制是什么? 2.谈谈你对多态的理解? 总结 1. 继承 1. 子类继承了父类,获得父类的全部Field和方法. 子类Student类继承父类,将可以获得父类的全部Field和方法 public class Perso

  • Java由浅入深带你精通继承super

    目录 什么是继承 背景 super关键字 protected 关键字 final 关键字 什么是继承 面向对象的特征: 封装:不必要公开的数据成员和方法,使用private关键字进行修饰.意义:安全性. 背景 代码中创建的类, 主要是为了抽象现实中的一些事物(包含属性和方法). 有的时候客观事物之间就存在一些关联关系, 那么在表示成类和对象的时候也会存在一定的关联 例如, 设计一个类表示动物 注意,:我们可以给每个类创建一个单独的 java 文件. 类名必须和 .java 文件名匹配(大小写敏感

  • Java由浅入深刨析继承

    目录 继承 继承的介绍 生活中的继承 继承的好处 继承的格式 继承的demo 子类不能继承的内容 super与this关键字 构造器不能被继承 final修饰的类不能被继承 方法重写 介绍 使用场景与案例 @Override重写注解 注意事项 完结 茫茫人海千千万万,感谢这一秒你看到这里.希望我的面试题系列能对你的有所帮助!共勉! 愿你在未来的日子,保持热爱,奔赴山海! Java基础知识(继承) 继承 继承的介绍 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.描述的是事

  • Java十分钟精通类 封装 继承

    目录 什么是类成员 什么是实例变量 那么实例变量和类变量的区别呢? 那么类方法和实例方法的区别? static关键字 static成员方法: static用处: 封装: 封装的概念 封装的分类 封装的使用 继承: 什么是继承 继承的使用: 方法重写的规则: super关键字: 什么是类成员 使用static修饰的成员方法和成员变量称为类成员 使用static修饰的成员变量叫做类变量 使用static修饰的成员方法叫做类方法 什么是实例变量 未使用static修饰的成员方法和成员变量称为实例成员

  • Java由浅入深讲解继承下

    目录 1.代码块初始化 2.protected关键字 3.final关键字 4.Java中允许的继承方式 本篇紧接上一篇内容继续,还是从继承里的细节开始 1.代码块初始化 关于代码块的定义和使用因为之前已经进行过介绍,所以这里就不再赘述,我们所关注的点是父类和子类中的代码块在运行时候的先后顺序是怎样的 首先还是在父类以及子类中添加代码块,如下: //父类 { System.out.println("父类实例代码块"); } static { System.out.println(&qu

  • Java由浅入深讲解继承上

    目录 1.什么是继承 2.继承的细节 2.1super关键字 2.2子类的构造方法 2.3super和this区别 继承同样是面向对象程序的特点 1.什么是继承 所谓继承就是抽取类的共性,进而实现代码的复用 继承的关键字是extends 现在定义一个类Tree,里面有树的名字.来源和科属,方法是打印树的形态特征,如下: class Tree { String name; String source; String genu; public void trait() { } } 上面的类除了方法t

  • 由浅入深讲解Javascript继承机制与simple-inheritance源码分析

    老生常谈的问题,大部分人也不一定可以系统的理解.Javascript语言对继承实现的并不好,需要工程师自己去实现一套完整的继承机制.下面我们由浅入深的系统掌握使用javascript继承的技巧. 1. 直接使用原型链 这是最简粗暴的一种方式,基本没法用于具体的项目中.一个简单的demo如下: function SuperType(){ this.property = true; } SuperType.prototype.getSuperValue = function(){ return th

  • Java由浅入深全面讲解方法的使用

    目录 一.方法的概念及其使用 1.1.什么是方法 1.2.方法的定义 1.3.方法调用的执行过程 1.4.实参和形参的关系(重要) 二.方法的重载 2.1.为什么需要方法重载 2.2.方法重载的定义 2.3.方法签名 三.递归 3.1.递归的概念 3.2.递归过程分析 3.3.递归小练习 一.方法的概念及其使用 1.1.什么是方法 方法就是一个代码片段. 类似于 C 语言中的 “函数”.作用如下: 1. 是能够模块化的组织代码(当代码规模比较复杂的时候). 2. 做到代码被重复使用, 一份代码可

  • Java由浅入深通关抽象类与接口下

    目录 1.对象的比较 1.1 Comparable<T> 1.2 Comparator<T> 2.克隆对象 2.1 Cloneable 2.2 深拷贝和浅拷贝 3.Object类 3.1 equals 3.2 toString 本篇介绍在对对象进行比较和克隆操作的时候会使用的接口,然后介绍一个类:Object 在Java中Object类默认是所有类的父类,里面有一些常用的方法会介绍 1.对象的比较 两个对象要进行比较之前,我们首先需要确定依据什么来进行比较,对象中的成员变量那么多,

  • 浅析Java中的继承与组合

    前言 Java是一个面向对象的语言.每一个学习过Java的人都知道,封装.继承.多态是面向对象的三个特征.每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用.所以,很多开发人员在需要复用一些代码的时候会很自然的使用类的继承的方式,因为书上就是这么写的(老师就是这么教的).但是,其实这样做是不对的.长期大量的使用继承会给代码带来很高的维护成本. 其实我第一次学习java 的时候根本没有听说过组合这个名词,老师也更没有讲解过,我一直以为是我自己落掉了什么知识点,其实不

  • Java类的继承实例详解(动力节点Java学院整理)

    一.你了解类吗? 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的). 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于  char.short.byte.int.long.float.double等基本数据类型的

  • Java实例讲解反射机制是怎么一回事

    Java反射机制的概述 1.Java的反射(reflection) :机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法.这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制.反射被视为动态语言的关键,反射让Java成为一个准动态语言 .缺点增加不安全性. 2.动态语言(弱类型语言) 是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型..

随机推荐