Я знаю, что это не хорошая практика кодирования, чтобы объявить метод как private
в классе abstract
. Даже если мы не можем создать экземпляр класса abstract
, почему модификатор доступа private
доступен в классе abstract
и какова его область действия в классе abstract
? В каком сценарии используется спецификатор доступа private
, используемый в классе abstract
?
проверить этот код, где Vehicle
класс абстрактный, а Car
- расширение транспортного средства.
package com.vehicle;
abstract class Vehicle {
// What is the scope of the private access modifier within an abstract class, even though method below cannot be accessed??
private void onLights(){
System.out.println("Switch on Lights");
}
public void startEngine(){
System.out.println("Start Engine");
}
}
Внутри этого же пакета создается класс Car
package com.vehicle;
/*
* Car class extends the abstract class Vehicle
*/
public class Car extends Vehicle {
public static void main(String args[]){
Car c = new Car();
c.startEngine();
// Only startEngine() can be accessed
}
}