• @Willem
    link
    717 hours ago

    On that last note, can’t you use the explicit interface implementation in C#?

    e.g.

    public class SampleClass : IControl, ISurface
    {
        void IControl.Paint()
        {
            System.Console.WriteLine("IControl.Paint");
        }
        void ISurface.Paint()
        {
            System.Console.WriteLine("ISurface.Paint");
        }
    }
    
    • @pivot_root@lemmy.world
      link
      fedilink
      1
      edit-2
      11 hours ago

      Edit: I misread your comment as “like in C#” and wrote this as an answer to the non-existent question of “can’t you use explicit interfaces like in C#”

      I haven’t kept up with recent Java developments, but with Go, you’re out of luck. Interface implementations are completely implicit. You don’t even have an implements keyword.

      Edit: For Java, a cursory search suggests that they haven’t yet added explicit interfaces: https://stackoverflow.com/questions/19111090/does-java-support-explicit-interface-implementation-like-c

      • ඞmir
        link
        fedilink
        212 hours ago

        He mentioned C#, which does let you explicitly choose to implement same-name functions of two interfaces with different code

        • @pivot_root@lemmy.world
          link
          fedilink
          3
          edit-2
          12 hours ago

          For some reason, my brain inserted a “like” before “in C#”, and answered the question of “can’t you use explicit interfaces like in C#.”