Define function with multiple dispatch in terms of another function with same signatures

Out of curiosity, I tried to run these commands. For p(1,2) I get 0.7 instead of 0.9 once q(a,b;c=2) has been defined.

julia> q(a,b) = 0.1
q (generic function with 2 methods)

julia> q(b) = 0.2
q (generic function with 2 methods)

julia> q(a,b;c=2)  = 0.3
q (generic function with 2 methods)

julia> p(args...) = 1.0 - q(args...)
p (generic function with 1 method)

julia> p(1,2) # 0.9
0.7

julia> p(1) # 0.8
0.8

julia> p(1,2)
0.7