1.protected权限修饰符的介绍

之前在说权限修饰符时候,没有细说protected,今天,我们就来聊聊protected

如图,protected修饰符中,“不同包的子类”是我们要理解的

我们在不同的包下创建一个Fu类和一个Zi类,然后在Zi类的同一个包中创建一个test类

Zi类继承Fu类,然后test不继承,仅用于测试

在test类里,创建Zi对象,发现无法调用Zi继承到的Fu类的show方法

这是因为,Fu类和test类属于无关类,show方法被protected修饰,最远范围也只能在不同包下的子类进行调用,在test里面调用超出了范围

所以,“不同包下的子类”就是指只能在Zi类范围里调用被protected修饰的成员,超出Zi类范围的地方都不行

如图,我们先在Zi范围里写了一个method,method再调用show就不会报错,然后如果想在其他地方调用show方法,就必须通过method方法来调用

我们会发现protected使用起来十分麻烦,而在现实编程,protected用的也很少,大部分使用的是public和private

2.java中继承的特点

支持单继承,而不支持多继承就是说一个类只能继承一个类,而不能同时继承多个类。

很好理解,一个人只能有一个亲爸,不可能有多个亲爸

java中不支持多继承的原因是防止程序逻辑混乱,假如支持多继承



两个父类中都有method方法,并且各自给出的逻辑都不同,这时,程序就无法判断该使用哪一个父类给出的method方法

支持多层继承就是说,A类继承B,B类继承C,可以理解为爷爷、爸爸、孙子

如图,B继承了A,而C又继承了B,所以A是爷爷,B是爸爸,C是孙子

c调用method方法,A与B属于子父类,所以B中的method方法就把A的method

方法重写,此时c调用的就是B重写的method方法,不会有逻辑错误

protected修饰符讲解、java中继承的特点-java se进阶 day01的更多相关文章

  1. Java进阶(四十)Java类、变量、方法修饰符讲解

    Java进阶(四十)Java类.变量.方法修饰符讲解 Java类修饰符 abstract: 将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. final: 将一个类生命为最终(即非继承类) ...

  2. 深入理解Java的protected修饰符

    其实Java的protected修饰符,权限定义的很微妙,大致有以下几种: (1)protected控制符用于修饰方法和成员变量: (2)一个类的protected方法或成员变量,在包外是不能通过该类 ...

  3. java protected修饰符说明

    1. 简介 对protected修饰符进行阐述,结合Object类的clone方法进行说明.其中clone方法如下:protected Object Object.clone(): 关于protect ...

  4. java protected修饰符理解

    Protected类型可以在本包和子类中访问的含义.在本包中访问,顾名思义,可以在定义类的包中的任何地方申请一个包含protected修饰符的域和方法的类的对象,并通过这个对象访问被protected ...

  5. Java中继承,类的高级概念的知识点

    1. 继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2. 继承的优点 A.代码的可重用性 B.子类可以扩 ...

  6. 第七节:详细讲解Java中的日期,java.util.date

    前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...

  7. java中继承thread类的其他类的start()方法与run()方法

    java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...

  8. java中继承,子类是否继承父类的构造函数

    java中继承,子类是否继承父类的构造函数 java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式) 下面来看例子: public class TestExtends { publi ...

  9. [转载]Java中继承、装饰者模式和代理模式的区别

    [转载]Java中继承.装饰者模式和代理模式的区别 这是我在学Java Web时穿插学习Java设计模式的笔记 我就不转载原文了,直接指路好了: 装饰者模式和继承的区别: https://blog.c ...

  10. java中继承的内存分析

    本文主要讲述java中继承的内存分析. 示例1,代码如下: public class EncapsulationTest { public static void main(String[] args ...

随机推荐

  1. Linux环境python3-pip安装指定源地址

    # 新建配置文件 vim ~/.pip/pip.conf # 写入地址 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [i ...

  2. Kubernetes GPU 虚拟化方案

    主流架构 Device Plugin:K8s制定设备插件接口规范,定义异构资源的上报和分配,设备厂商只需要实现相应的API接口,无需修改kubelet源码即可实现对其他硬件设备的支持. Extende ...

  3. 第一章 dubbo源码解析目录

    重要的网址: dubbo的github:https://github.com/alibaba/dubbo dubbo官网:http://dubbo.io/ dubbo使用者手册:https://dub ...

  4. 【Docker】---部署集群(2)

    RocketMQ(2)-Docker集群部署RocketMQ =前言= 1.因为自己只买了一台阿里云服务器,所以RocketMQ集群都部署在单台服务器上只是端口不同,如果实际开发,可以分别部署在多台服 ...

  5. 系统提示msvcp120.dll丢失如何解决

    最近有位win7系统用户反映,自己安装完游戏开始玩的时候,系统却提示:示msvcp120.dll丢失,这导致了游戏无法正常运行,这让用户很是苦恼,不知道电脑如何解决,为此非常苦恼,那么win7系统提示 ...

  6. linux:init

    init命令启动级别的含义(0-6) 0:停机1:单用户形式,只root进行维护2:多用户,不能使用net file system3:完全多用户4:未使用(系统之间可能略有不同,有些人的博客写的是安全 ...

  7. Collection子接口:Set接口(实现类:HashSet、LinkedHashSet、TreeSet)

    /** * 1. Set接口的框架: * * |----Collection接口:单列集合,用来存储一个一个的对象 * |----Set接口:存储无序的.不可重复的数据 -->高中讲的" ...

  8. Quackerjack pg walkthrough

    nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.159.57 Starting Nmap 7.94SVN ( https://nmap.org ) at ...

  9. 《SpringBoot》史上最全SpringBoot相关注解介绍

    @SpringBootApplication @SpringBootApplication看作是 @Configuration.@EnableAutoConfiguration.@ComponentS ...

  10. 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案

    前言 去年下半年 cursor 非常火,让很多一行代码都不懂的小白,也可以做自己的网站和搭 App,当时一下子就引爆了独立开发的热潮. 不过每月20dollar的价格也不算便宜,这时候可以使用 cli ...