关于修饰符混用错误的是?

A  不能共存,因为abstract就是要被继承的,而被final修饰的类不可能被继承,所以不可共存

final 修饰的类/方法/属性均不可再次更改,故而不可以被重写

B  private修饰的类只可以定义在内部类;private 修饰的方法/属性只可以在类中调用,重写时是访问不到这些方法和属性的,所以不建议有

C  正确

D  不可以,静态方法只能访问静态成员。非静态既可以访问静态,又可以访问非静态。

static修饰的方法可以直接用类名调用。静态变量可以被对象调用,还可以被类名调用。

非static修饰的方法只能被对象调用,必须用类new出对象才能调用当我们用类名直接调用时,可能这个类的对象并没有new。如果这时候static方法里调用非static的方法就会出现空指针异常,当然这种错误编译时就不会通过

补充:abstract和static,static 静态的,其修饰的方法/属性,是随着类的创建而创建,类的消亡而消亡,在编译时就已经确定的东西;但是abstract是dynamic(动态)的,其必须通过类继承或接口实现来动态重写abstract方法。

时间: 2024-10-14 23:55:33

关于修饰符混用错误的是?的相关文章

virtual 修饰符 C# .NET

virtual 关键字用于修饰方法.属性.索引器或事件声明,并且允许在派生类中重写这些对象. 例如,此方法可被任何继承它的类重写. (C#参考) 1 public virtual double Area() 2 3 { 4 5 return x * y; 6 7 } 虚拟成员的实现可由派生类中的重写成员更改 调用虚方法时,将为重写成员检查该对象的运行时类型.将调用大部分派生类中的该重写成员, 如果没有派生类重写该成员,则它可能是原始成员. 默认情况下,方法是非虚拟的.不能重写非虚方法. virt

概述C# virtual修饰符

摘要:C#是继C++和Java语言后的又一面向对象的语言,在语法结构,C#有很多地方和C++及Java相似,但是又不同于它们,其中一些关键特别需要引起我们的注意. C# virtual修饰符用于修改方法或属性的声明,在这种情况下,方法或属性被称作虚拟成员.虚拟成员的实现可由派生类中的重写成员更改. 调用虚方法时,将为重写成员检查该对象的运行时类型.将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员. 默认情况下,方法是非虚拟的.不能重写非虚方法. 不能将C# virt

VS开发入门三:c#的类的修饰符和成员的修饰符

初学者经常会犯下的错误就是,修饰符一大堆,而且类和其成员很多修饰符是一样的容易混用 这里总结下 C#修饰符之类修饰符(6个 助记 PIPA SS ):public.internal. partial(多文件编写).abstract(抽象).sealed(密封不能被继承).static C#修饰符之成员修饰符(11个助记 PIPA VS PROCS):public.internal.protected.abstract.virtual.sealed(不能覆写).private.readonly(字

静态修饰符static,类中的常量定义修饰符

static可以用来区分成员变量.方法是属于类本身还是属于类实例化后的对象.有static修饰的成员属于类本身,没有static修饰的成员属于类的实例. 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失static是一个修饰符,用于修饰成员(成员变量和成员函数)静态成员随着类的加载而加载.静态成员优先于对象存在.静态成员被所有对象所共享静态成员多了一个中调用方式,可以被类名直接调用.静态的优缺点优点: 静态成员多了一种调用方式.可以直接被类名调用 格式 :类名.静态成员.也

修饰符-包-内部类-代码块执行顺序

1.访问权限修饰符     从大到小的顺序为:public--protected--default--private     private--只能在同一类中使用;     default--不用写出来,默认不加.可以被同一包中的类使用     protected--可以被不同包的子类使用     public--可以被不同包的其它类使用 2.各种修饰符的修饰对象(可修饰哪些:类/接口/方法/属性)(多个修饰符连用是可以没有顺序的!)     1)访问权限修饰符:public/default--

JavaSE入门学习10:Java修饰符

Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: <span style="font-size:18px;">public class className { // ... } private boolean flag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42;

final修饰符

final修饰变量时,表示该变量一旦获得了初始值就不可改变, 由于final变量获得初始值之后不能被重新赋值,因此final修饰成员变量和修饰局部变量时有一定的不同. 5.4.1final成员变量 成员变量是随类初始化或对象初始化而初始化的, 当类初始化时,系统会为该类的类变量分配内存,并分配默认值: 当创建对象时,系统会为该对象的实例变量分配内存,并分配默认值. java语法规定:final修饰的成员变量必须由程序员显式地指定初始值 归纳: final修饰的类变量,实例变量 能指定初始值的地方

正则表达式模式修饰符

下面列出了当前可用的 PCRE 修饰符.括号中提到的名字是 PCRE 内部这些修饰符的名称. 模式修饰符中的空格,换行符会被忽略,其他字符会导致错误. i (PCRE_CASELESS) 如果设置了这个修饰符,模式中的字母会进行大小写不敏感匹配. m (PCRE_MULTILINE) 默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), "行首"元字符 (^) 仅匹配字符串的开始位置, 而"行末"元字符 ($) 仅匹配字符串末尾,

Java 修饰符

Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class className { // ... } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; public static void main(String[] argum