Java由浅入深讲解继承下

作者:星鸦wyk 时间:2023-11-25 12:21:26 

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

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方法中实例化子类对象后来看一下结果:

Java由浅入深讲解继承下

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

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

2.protected关键字

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

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

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

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

访问范围privatedefaultprotectedpublic
同一包中的同一类√√√√
同一包中的不同类×√√√
不同包中的子类××√√
不同包中的非子类×××√

3.final关键字

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

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

修饰方法:不能被重写

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

4.Java中允许的继承方式

单继承:A继承B

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

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

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

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

来源:https://blog.csdn.net/qq_52989768/article/details/123976068

标签:Java,继承,概念
0
投稿

猜你喜欢

  • Swift编程中的泛型解析

    2022-04-19 05:37:24
  • Android 操作系统获取Root权限 原理详细解析

    2021-12-07 16:20:55
  • Spring事务失效的一种原因关于this调用的问题

    2022-07-19 20:59:21
  • 在spring boot3中使用native image的最新方法

    2022-05-18 17:43:14
  • C++类常量和类枚举

    2022-05-05 17:07:47
  • c#动态加载卸载DLL的方法

    2023-06-08 08:18:08
  • Spring中RedisTemplate的基本使用浅析

    2023-03-08 05:46:50
  • Spring Boot集成教程之异步调用Async

    2023-03-10 03:39:50
  • java结束进程的实例代码

    2023-11-10 14:18:38
  • Android App中ListView仿QQ实现滑动删除效果的要点解析

    2022-11-22 03:05:57
  • Java中的静态绑定和动态绑定详细介绍

    2023-01-18 19:54:06
  • Spring Cloud中Sentinel的两种限流模式介绍

    2021-11-22 00:38:10
  • C#网络编程中常用特性介绍

    2021-09-03 23:07:51
  • Java链表中元素删除的实现方法详解【只删除一个元素情况】

    2023-01-16 11:49:41
  • C#使用udp如何实现消息的接收和发送

    2022-05-26 20:56:01
  • 利用C#代码将html样式文件与Word文档互换的方法

    2022-04-22 07:11:31
  • 零基础写Java知乎爬虫之先拿百度首页练练手

    2022-11-14 09:07:05
  • springboot整合mybatis实现简单的一对多级联查询功能

    2023-11-07 13:30:22
  • 详解SpringBoot项目整合Vue做一个完整的用户注册功能

    2022-02-13 21:46:35
  • java 多态性详解及简单实例

    2021-10-06 23:29:50
  • asp之家 软件编程 m.aspxhome.com