宾阳网站建设,wordpress首页静态化生成,ppt模板app,网络科技公司骗了我368001、抽象类中的抽象方法#xff08;其前有abstract修饰#xff09;不能用private、static、synchronized、native访问修饰符修饰。
原因如下#xff1a;
抽象方法没有方法体#xff0c;是用来被继承的#xff0c;所以不能用private修饰#xff1b;static修饰的方法可以通…1、抽象类中的抽象方法其前有abstract修饰不能用private、static、synchronized、native访问修饰符修饰。
原因如下
抽象方法没有方法体是用来被继承的所以不能用private修饰static修饰的方法可以通过类名来访问该方法即该方法的方法体抽象方法用static修饰没有意义使用synchronized关键字是为该方法加一个锁。而如果该关键字修饰的方法是static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。但是抽象类不能实例化对象因为该方法不是在该抽象类中实现的。是在其子类实现的所以锁应该归其子类所有。所以抽象方法也就不能用synchronized关键字修饰了native这个东西本身就和abstract冲突他们都是方法的声明只是一个吧方法实现移交给子类另一个是移交给本地操作系统。如果同时出现就相当于即把实现移交给子类又把实现移交给本地操作系统那到底谁来实现具体方法呢
扩展
类、方法、成员变量和局部变量的可用修饰符
修饰符类成员方法构造方法成员变量局部变量abstract抽象的√√static 静态的√√public公共的√√√√protected受保护的√√√private私有的√√√synchronized同步的√native本地的√transient暂时的√volatie易失的√final不要改变的√√√√
类 修饰符Public可以从其他类中访问Abstract本类不能被实例化Final不能再声明子类构造函数修饰符Public可以从所有的类中访问Protected只能从自己的类和它的子类中访问Private只能在本类中访问域/成员变量修饰符Public可以从所有的类中访问Protected只能从本类和它的子类中访问Private只能从本类中访问它Static对该类的所有实例只能有一个域值存在transient不是一个对象持久状态的一部份Volatile可以被异步的线程所修改final必须对它赋予初值并且不能修改它局部变量 修饰符final必须对它赋予初值并且不能修改它方法修饰符Public可以从所有的类中访问它Protected只能从本类及其子类中访问它Private只能从本类中访问它abstract没有方法体属于一个抽象类final子类不能覆盖它static被绑定于类本身而不是类的实例native该方法由其他编程语言实现asnchronized在一个线程调用它之前必须先给它加
类的修饰符整合
一类
类的修饰符
Public:可以在其他任何类中使用默认为统一包下的任意类。
Abstract:抽象类不能被实例化可以包含抽象方法抽象方法没有被实现无具体功能只能衍生子类。
Final:不能被继承。
二变量
变量修饰符
一个类的成员变量的声明必须在类体中而不能在方法中方法中声明的是局部变量。 可访问修饰符 static类变量一个类所拥有的变量不是类的每个实例有的变量。类变量是指不管类创建了多少对象系统仅在第一次调用类的时候为类变量分配内存所有对象共享该类的类变量因此可以通过类本身或者某个对象来访问类变量。 final常量。 volatile声明一个可能同时被并存运行的几个线程所控制和修改的变量。
实例变量和类变量对应即每个对象都拥有各自独立的实例变量。
三方法和变量对象分为实例方法和类方法并用有无static修饰区别
类方法使用static关键字说明的方法
1.第一次调用含类方法的类是系统只为该类创建一个版本这个版本被该类和该类的所有实例共享。
2.类方法只能操作类变量不能访问实例变量。类方法可以在类中被调用不必创建实例来调用当然也可以通过对象来调用。
实例方法实例方法可以对当前对象的实例变量操作而且可以访问类变量。
方法可以重载要求方法名相同但是参数必须有区别。参数不同可以使类型不同顺序不同个数不同
方法中的变量作用域 成员变量整个类。 局部变量定义起到方法块结束为止。 方法参数整个方法或者构造方法。 异常处理参数参数传递给异常处理方法。
构造方法和类同名的方法。为新建对象开辟内存空间后用于初始化新建的对象。不能用对象显式的调用。
静态初始化器格式static{赋值语句组}
静态初始化器与构造方法的区别
静态初始化器构造方法对类的静态域初始化对新建的对象初始化类进入内存后系统调用执行执行new后自动执行属特殊语句仅执行一次属特殊方法
方法的修饰符
抽象方法:用abstract修饰只有声明部分方法体为空具体在子类中完成。
类方法:静态方法用static修饰 调用时使用类名作为前缀而不是类的某个实例对象名 不能被单独对象拥有属于整个类共享。 不能处理成员变量静态只能调用静态。
最终方法用final修饰不能被子类重新定义的方法。
本地方法用native修饰的方法表示用其他语言书写的特殊方法包括CCFORTRAN汇编语言等。
四类成员的访问控制符
即类的方法和成员变量的访问控制符一个类作为整体对象不可见并不代表他的所有域和方法也对程序其他部分不可见需要有他们的访问修饰符判断。
权限如下
访问修饰符同一个类同包不同包子类不同包非子类private√protected√√√public√√√√默认√√