Вызвать суперметод суперкласса из дочернего класса

У меня есть абстрактный класс A:

abstract class A {
    Future<String> firstMethod();
}

И я реализовал этот абстрактный класс:

class Aimp implements A {
  @override
  Future<String> firstMethod() async {
      return "test";
  }
}

Я создал еще один абстрактный класс:

abstract class B extends A {
  
    Future<String> secondMethod();
}

И я реализовал этот абстрактный класс:

class Bweb extends B {
    @override
      Future<Object> secondMethod() async {
          final t = //I want to call firstMethod()
         if (t.isNotEmpty()) // do sth
    }
}

В реализации secondMethod(), как я могу вызвать реализацию firstMethod()?

Я не хочу использовать миксин.

Могу я узнать, почему мне не нравится использовать примеси, уже используя наследование?

Yeasin Sheikh 13.02.2023 11:40

Особой причины нет, я хочу использовать его как java @YeasinSheikh

Cyrus the Great 13.02.2023 11:49

Попробуйте пост Моиза Раджесерисона

Yeasin Sheikh 13.02.2023 12:01

Я думаю, это работает, это смешанный способ

Cyrus the Great 13.02.2023 12:18

Вряд ли [я бы сказал], это уже унаследовано от A по B with Aimp

Yeasin Sheikh 13.02.2023 12:21
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Типы ввода HTML: Лучшие практики и советы
Типы ввода HTML: Лучшие практики и советы
HTML, или HyperText Markup Language , является стандартным языком разметки, используемым для создания веб-страниц. Типы ввода HTML - это различные...
Аутсорсинг разработки PHP для индивидуальных веб-решений
Аутсорсинг разработки PHP для индивидуальных веб-решений
Услуги PHP-разработки могут быть экономически эффективным решением для компаний, которые ищут высококачественные услуги веб-разработки по доступным...
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
Слишком много useState? Давайте useReducer!
Слишком много useState? Давайте useReducer!
Современный фронтенд похож на старую добрую веб-разработку, но с одной загвоздкой: страница в браузере так же сложна, как и бэкенд.
Узнайте, как использовать теги &lt;ul&gt; и &lt;li&gt; для создания неупорядоченных списков в HTML
Узнайте, как использовать теги <ul> и <li> для создания неупорядоченных списков в HTML
HTML предоставляет множество тегов для структурирования и организации содержимого веб-страницы. Одним из наиболее часто используемых тегов для...
2
5
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вместо этого я пытаюсь использовать with:

abstract class A {
    Future<String> firstMethod();
}

class Aimp implements A {
  @override
  Future<String> firstMethod() async {
      return "test";
  }
}

abstract class B with Aimp {
    Future<String> secondMethod();
}

class Bweb extends B {
  
    @override
    Future<String> secondMethod() async {
         final String t = await firstMethod(); //Your firstMethod function
         if (t.isNotEmpty) {
           return t;
         }
      return '';
    }
}

Тогда вам нужен объект класса Aimp как поле класса Bweb. Или поместите класс A в качестве поля для класса B.

Другие вопросы по теме