This sounds like an exact duplicate of: [Does dart support operator overloading](https://stackoverflow.com/questions/10130472/does-dart-support-operator-overloading)  

But the name is misleading, the question is about how to override existing operators (the `==` operator).

As far as I understand, overloading a function means having multiple implementations that vary only in their parameters, but not in the name of the function:

```
int max(int a, int b);
double max(double a, double b);

```

By contrast, overriding means rewriting an existing implementation. Since the original function is replaced, there are no name clashes. This is common in OOP where you extend a base class and override its methods.

The [docs](https://dart.dev/guides/language/language-tour#overridable-operators) say that there are overridable operators. So I see that you can implement custom operators. At the same time, dart does not support overloading methods. So, does dart support overloading operators?

Would it be possible to write the following code:

```
class Matrix{
  Matrix operator+(int b){//...};
  Matrix operator+(Matrix b({//...};
}

```