'Static method access in abstract class/interface (flutter/dart)

In my flutter project, I have the following abstract class.

abstract class Storage {
  static method1{}
  static method2{}
  ...
}

Then I define other classes that extend to Storage but each child class implements some of the methods defined (with empty body) in the Storage class.

class StorageA{
    static method1{ print("1") }
}
class StorageB{
    static method2{ print("2") }
}

My goal is to be able to call any of these static method by using the Storage namespace, however, I want to invoke the overridden methods in the child classes. For example, when I call Storage.method1 it should print 1. This is a very simplified example but I normally have bunch of methods and I want to group these methods into different classes that extend to Storage. But at the same time i want to access all the overridden methods with Storage namespace. Currently when I do Storage.method1 compiler picks up the function defined in Storage because it has an empty body. If i remove the body and turn it into function declaration, then I can't define the function as static. So, how can I reach my goal here?

Is combining everything into a single Storage class and defining the methods as static the only solution here?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source