抽象方法的访问修饰符

article/2025/9/9 15:04:00

抽象方法不能使用private修饰符,也不宜使用默认修饰符(default)

(1)如果使用private修饰符

public abstract class SuperClass {/** The abstract method test in type SuperClass can only set a visibility modifier,*  one of public or protected*/private abstract void test();//编译通不过    
}

这里写图片描述

抽象方法必须对子类可见,而private修饰的方法对子类不可见,因此不能使用private修饰符。

(2)如果使用默认修饰符(即不带修饰符)

package cn;public abstract class SuperClass {//采用package修饰符,可以通过编译,但是后患无穷//该方法,不一定对子类可见,除非子类也在这个包下abstract void test();
}
package com;import cn.SuperClass;public class SubClass extends SuperClass {/** This class must implement the inherited abstract method SuperClass.test(), * but cannot override it since it is not visible from SubClass. * Either make the type abstract or make the inherited method visible*/@Overridevoid test() {//编译出错 //子类和父类,不在同一个包下,因此不能访问父类的package方法}
}

这里写图片描述

如果不带修饰符,那么就是包内访问。这种情况下,不一定能保证对子类可见。如果子类和父类不在一个包下面,子类是无法访问(无法覆盖)父类的package方法。因此,abstract方法的访问权限不应该是包内访问。

总结:

对于abstract方法,不能使用private修饰符(编译出错),不能使用package修饰符(编译正常,但是不合理,后患无穷),可以使用public和protected,大多数情况下都是使用public。


http://chatgpt.dhexx.cn/article/EKbWYGRq.shtml

相关文章

Java之访问修饰符

1.访问修饰符 java提供四种访问修饰符,用于控制方法和属性(成员变量)的访问权限 四种分别是 公开级别:public,对外公开 受保护级别:protected,对子类和同一个包的类公开 默认级别&#xff…

Java-访问修饰符

目录 一、private(私有权限) 二、default(默认权限) 三、protected(受保护权限) ​四、public(公共权限) 五、总结 示意图 private(default)protectedpublic本类YesYesYesYes同包的类NoYesYesYes不同包的父子关系NoNoYesYes不同包的非父子关系NoNoNoYes 注意点&#xf…

C# 的访问修饰符

访问修饰符的作用域分为三种: 类的访问修饰符方法的访问修饰符属性的访问修饰符 访问修饰符主要分为: public (公共的)protected (保护的)internal (内部的)private (私有的) 一,类的访问修饰符 默认的是 internal 二,方法的…

c# 访问修饰符

C# 中提供了 6 种访问修饰符:public、private、protected、internal、protected internal、private protected。   访问修饰符 在所有的类型和类型成员中都具有可访问性级别,用于控制是否可以从程序集或其他程序集中对其他代码的访问控制。 访问修饰符…

访问控制修饰符

定义理解 对类、变量、方法、接口的访问范围限制。一.类修饰符 1.直接声明 class 类名{ },即不加修饰符的时候 这种情况下,只可访问同一包中的类,不可访问不同包中的类。2.public,公共类的修饰符 这种情况下,既可访…

Java访问修饰符全面详细介绍

Java中有四种权限修饰符,其在同一项目中所对应的访问权限如下: 注意:默认不写即是default,而不是自己还特意加上default关键字。 Java语言有4种访问权限修饰符,下面按照权限从小到大的顺序对4种访问权限分别介绍: 1、…

Java基础:Java中四种访问修饰符

一、背景。 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。放假在家里休息,闲来无事,想巩固巩固自己的基础知识…

C#的5种访问修饰符

C#的5种访问修饰符 1、public 公共的 public 允许一个类将其成员变量和成员函数暴露给其他的函数和对象。任何公有成员都可以被外部的类访问。 class Person {public string name;public int age;public void SayHello(){Console.WriteLine("大家好,我叫{0}&a…

C#访问修饰符

C#中的访问修饰符有以下六种: public:同一程序集和和引用该程序集的所有代码都可访问。public成员可访问级别由该类型本身的级别决定。private:只有同一类中的成员可以访问protected:同一类和派生类中的代码可以访问internal&…

java的四个访问修饰符_Java中的四种访问修饰符

Java中修饰符分为两种:访问修饰符和非访问修饰符。修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法。 今天这篇文章先介绍一下四种访问修饰符。 1、private修饰符 private表示私有的。既然…

四种访问修饰符详解

有四种访问修饰符规定了定义的属性和方法能访问的区域 private关键字 用private关键字修饰的属性和方法只能在该类的大括号内访问,出了这个类就不能被访问了。当一个子类继承一个父类的属性和方法时,若父类的属性或方法被private修饰,那么子…

Java中的访问修饰符

JAVA中的访问修饰符,主要用于设置类、属性、方法的访问级别,有以下四种: 在编写代码的时候,如果没有特殊的考虑,建议这样使用权限: 成员变量使用private,隐藏细节构造方法使用public&#xff0…

java四种访问修饰符

访问修饰符 public,private,protected,以及不写(默认)时的区别: 定义:Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 分类: private : 在同一类内…

访问修饰符 [详解]

可能一下子会想到private、default、protected、public这四个,但如果问"static、abstract等是不是访问修饰符呢?" 这就不清楚了,所以下面研究前四个及再补充其他的 1、当前已知的 过一眼就行,毕竟后面会重新研究 1.1 范围从大到小排序是:public>protected>默…

四种访问修饰符

Java中修饰符分为两种:访问修饰符和非访问修饰符。修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法。 今天这篇文章先介绍一下四种访问修饰符。 1、private修饰符 private表示私有的。既…

JAVA的四种访问修饰符

JAVA中的访问修饰符,主要用于设置类、属性、方法的访问级别,有以下四种: 修饰符同一个类同一个包子类任何地方public(公共的)YYYYprotected(受保护的)YYYdefault(默认的)YYprivate(私有的)Y 1…

特征工程—数据无量纲化之归一化

在sklearn中使用preprocessing预处理与impute缺失值处理,两个模块进行数据预处理 数据无量纲化:将不同量纲的数据转化到同一区间,避免某一取值的数据范围太大或太小对影响计算,加快求解速度,提高精度 无量纲化包括线…

数据挖掘的步骤——降维处理前一定记得进行无量纲化处理

数据挖掘的步骤 我们使用sklearn进行虚线框内的工作(sklearn也可以进行文本特征提取)。通过分析sklearn源码,我们可以看到除训练,预测和评估以外,处理其他工作的类都实现了3个方法:fit、transform和fit_tra…

#第27篇分享:数据无量纲化(python语言:sklearn 预处理及特征工程)(3)

#数据挖掘五大流程:获取数据,数据预处理 (更改数据类型,有噪声,有缺失),特征工程 (归一化,标准化,正则化,降维),建模&…

均值归一化_数据无量纲化处理(归一化VS标准化)

常见的无量纲化处理方法主要有极值化、标准化、均值化和标准差化方法,而最常使用的是标准化方法。 标准化方法处理后的各指标均值都为0,标准差都为1,它只反映了各指标之间的相互影响,在无量纲化的同时也抹杀了各指标之间变异程度上的差异,因此,标准化方法并不适用于…