logo

Java абстрактна ключова дума

Ключовата дума abstract се използва за постигане на абстракция в Java. Това е модификатор без достъп, който се използва за създаване на абстрактен клас и метод.

Ролята на абстрактния клас е да съдържа абстрактни методи. Въпреки това, той може да съдържа и неабстрактни методи. Методът, който е деклариран с абстрактна ключова дума и няма реализация, е известен като абстрактен метод.

какво е азбучен номер

Синтаксис:-

 abstract class Employee { abstract void work(); } 

Забележка - Не можем да декларираме абстрактни методи в неабстрактен клас.

Правила за абстрактна ключова дума

Не трябва

  • Абстрактна ключова дума не може да се използва с променливи и конструктори.
  • Ако даден клас е абстрактен, той не може да бъде създаден.
  • Ако даден метод е абстрактен, той не съдържа тялото.
  • Не можем да използваме абстрактната ключова дума с финал .
  • Не можем да декларираме абстрактни методи като частен .
  • Не можем да декларираме абстрактни методи като статичен .
  • Абстрактен метод не може да бъде синхронизиран.

Направи

  • Абстрактна ключова дума може да се използва само с клас и метод.
  • Абстрактният клас може да съдържа конструктори и статични методи.
  • Ако даден клас разширява абстрактния клас, той трябва също да имплементира поне един от абстрактните методи.
  • Абстрактен клас може да съдържа основния метод и последния метод.
  • Абстрактен клас може да съдържа претоварени абстрактни методи.
  • Можем да декларираме локалния вътрешен клас като абстрактен.
  • Можем да декларираме абстрактния метод с клауза за хвърляне.

Примери за абстрактни ключови думи

Пример 1: Абстрактен клас, съдържащ абстрактния метод

 abstract class Vehicle { abstract void bike(); } class Honda extends Vehicle { @Override void bike() { System.out.println('Bike is running'); } } public class AbstractExample1 { public static void main(String[] args) { Honda obj=new Honda(); obj.bike(); } } 
Тествайте сега

Изход:

 Bike is running 

Пример 2: Абстрактен клас, съдържащ абстрактния и неабстрактния метод

 abstract class Vehicle { abstract void bike(); void car() { System.out.println('Car is running'); } } class Honda extends Vehicle { @Override void bike() { System.out.println('Bike is running'); } } public class AbstractExample2 { public static void main(String[] args) { Honda obj=new Honda(); obj.bike(); obj.car(); } } 
Тествайте сега

Изход:

 Bike is running Car is running 

Пример 3: Абстрактен клас, съдържащ конструктора

 abstract class Vehicle { String msg; Vehicle(String msg) { this.msg=msg; } void display() { System.out.println(msg); } } class Honda extends Vehicle { Honda(String msg) { super(msg); } } public class AbstractExample3 { public static void main(String[] args) { Honda obj=new Honda('Constructor is invoked'); obj.display(); } } 
Тествайте сега

Изход:

 Constructor is invoked 

Пример 4: Абстрактен клас, съдържащ претоварени абстрактни методи

 abstract class Vehicle { abstract void display(); abstract void display(String msg); } class Honda extends Vehicle { @Override void display() { System.out.println('abstract method is invoked'); } @Override void display(String msg) { System.out.println(msg); } } public class AbstractExample4 { public static void main(String[] args) { Honda obj=new Honda(); obj.display(); obj.display('overloaded abstract method is invoked'); } } 
Тествайте сега

Изход:

 abstract method is invoked overloaded abstract method is invoked 

Пример 5: Вътрешен абстрактен клас

 class Vehicle { abstract class Car { abstract void display(); } class Honda extends Car { @Override void display() { System.out.println('inner abstract class is invoked'); } } } public class AbstractExample5 { public static void main(String[] args) { Vehicle obj=new Vehicle(); Vehicle.Car c=obj.new Honda(); c.display(); } } 
Тествайте сега

Изход:

заключване на приложение за Android
 inner abstract class is invoked 

Пример 6: Вложен абстрактен клас

 abstract class Vehicle { abstract class Car { abstract void display(); } } class Honda extends Vehicle { class FourWheller extends Car { @Override void display() { System.out.println('nested abstract class is invoked'); } } } public class AbstractExample6 { public static void main(String[] args) { Vehicle obj=new Honda(); Honda h=(Honda)obj; Honda.FourWheller fw=h.new FourWheller(); fw.display(); } } 
Тествайте сега

Изход:

 nested abstract class is invoked