Можно ли использовать метод абстрактного класса? Как я могу использовать метод класса без экземпляра?Использование метода абстрактного класса
ответ
Если вы объявляете метод как static
, вы можете вызвать его напрямую, не требуя экземпляра класса. В противном случае вам понадобится экземпляр производного класса.
Поскольку абстрактный класс не может быть создан непосредственно, вы не можете вызвать метод абстрактного класса непосредственно , если не является статическим методом. Но вы можете вызвать статический метод абстрактного класса непосредственно, вот быстрый пример:
#include <iostream>
#include <ostream>
#include <fstream>
using namespace std;
class stest{
public:
static void test();
virtual void a() = 0;
};
void stest::test(){ cout << "test\n"; }
int main(){
stest::test();
return 0;
}
В качестве альтернативы, если у вас есть экземпляр класса, который является производным от абстрактного класса, вы можете рассматривать его как экземпляр абстрактного класса и может вызывать на нем любые методы.
Аннотация Класс не означает, что у вас нет экземпляра, это означает, что тип экземпляра экземпляра на самом деле является некоторым производным классом, который предоставляет реализации для чистых виртуальных функций в абстрактном базовом классе. Но не все функции-члены абстрактного класса должны быть чисто виртуальными, у вас может быть сочетание конкретных и абстрактных функций.
Когда вы вызываете функции-члены «в абстрактном классе», все виртуальные функции, включая чистые виртуальные, называются полиморфно. Таким образом, выполняется переопределение, определенное в производном классе. Не виртуальные функции вызывают определение в базовом классе, вы не можете иметь чистых конкретных функций, поэтому даже абстрактный класс должен обеспечить реализацию для не виртуальных функций.
Возможно даже, что чистая виртуальная функция имеет реализацию, предоставляемую абстрактным базовым классом. Необходимо переопределить, но затем переопределение может вызвать реализацию базового класса.
- 1. Вызов абстрактного метода из родительского абстрактного класса
- 2. Какое использование абстрактного класса, интерфейса или абстрактного метода
- 3. Использование абстрактного метода после наследования
- 4. Смысл не абстрактного метода абстрактного класса
- 5. частичная реализация абстрактного метода абстрактного класса
- 6. Использование абстрактного класса Java
- 7. Использование абстрактного класса java
- 8. Точное использование абстрактного класса
- 9. Переопределение абстрактного метода базового класса
- 10. Наследование метода от абстрактного класса
- 11. Тестирование абстрактного метода дочернего класса от абстрактного класса
- 12. Использование частного абстрактного метода в производном классе
- 13. Использование абстрактного класса в Java
- 14. Как представить использование абстрактного класса?
- 15. Использование абстрактного класса в Java
- 16. Каково точное использование абстрактного класса?
- 17. Вызов абстрактного метода из обратного вызова внутри абстрактного класса
- 18. Не удается вернуть подклассы абстрактного класса в реализации абстрактного метода
- 19. Почему класс абстрактного класса, когда нет абстрактного метода
- 20. В чем смысл вызова абстрактного метода внутри абстрактного класса?
- 21. Как указать тип возврата метода абстрактного класса
- 22. абстрактного класса защищенного метода JUnit тест
- 23. Вызов метода абстрактного класса внутри связанного списка
- 24. Spring pointcut для защищенного метода абстрактного класса
- 25. вызов метода интерфейса в методе абстрактного класса
- 26. Вызов статического метода из абстрактного класса
- 27. Создание метода для абстрактного класса в java
- 28. Как обеспечить выполнение метода из абстрактного класса?
- 29. Rhino.Mocks, как тестировать вызовы метода абстрактного класса
- 30. Обновить экземпляр класса StringVar() от абстрактного метода
большое вам спасибо – cemregoksu