If I wasn't willing to answer my coworkers questions, I'd consider myself a bad colleague. It would be annoying if people came up to my desk constantly, but they usually send out an email or IM [EDIT] or catch me away from the desk, like in the break room. It's less distracting from a flow perspective (potentially not distracting if those notifications aren't immediately visible). Related, without getting these questions from colleagues I can't know, no one can know, what institutional knowledge we're lacking. I was surprised (sort of) by how deficient my coworkers were with git, until I realized I was one of 3 folks here who do any hobby programming and so had used git on my own time before we adopted it internally on some projects. I'm glad I know that they don't know, because we were able to put together a training course of sorts to bring them up to speed. This has helped with new hires as well. This makes us, as an office, much more effective than if we'd left it to individuals to google for answers (though it may be quicker in the short term, it doesn't help in the long term because they still don't understand the problems they face and the systems they use).
Being willing to answer questions is not the same as being quick to ask them of people that might otherwise be engaged. The first shows patience and respect that the other person is not wasting your time. The latter shows impatience and disrespect for other people's time.
Coworkers and friends are a resource to be cherished, not abused.