Question: Is there a way to use inherited methods with a same name from few classes, but without casting?

```
public class A {
     someMethod(A a) {}
}
public class B {
     someMethod(B b) {}
}
public class Client : A, B {
     public Client() {
          someMethod(new A());
          someMethod(new B());
     }
}

```

Answer: 
No. Doing that as you describe is called multiple inheritance. Doing the same thing without inheritance on a subset of the methods is called a mixin . Neither is a feature of c#, sorry.
There are some non-language tools for this sort of thing. Check out [PostSharp](http://www.postsharp.net/).