No getting past it, Java is an OO language. So many cases exist where a procedural programmer has grabbed Java by the scruff of the neck and forced it to be unnaturally flat-file-like by making classes and methods static.
This just simply will not do. You are robbed of any of the benefits of inheritence and delegation. It makes it neigh on impossible to refactor your code, forces you to write more of it (introducing the cut&paste antipattern, kisses any chance you might have to employ standard OO patterns and worst of all, you can get HORRIBLE threading issues with variable overwriting, deadlocks, starvation – the whole 9 yards.
A great deal of our efforts as programmers is spent on trying to maximise the best and widest functional coverage with the minimum amount of code. There are screeds of books written on the benefits of this, so lets not bother with why that is a good thing here.
All that is being pointed out to you, Dear Reader, is that creating sensible object and interface hierarchies and a liberal dose of polymorphism, overloading and overriding saves you a load of finger work at the cost of a few more moments of brainpower. Not only that but it makes your code more PRESENTABLE to the casual observer. Something that becomes essential when you are working on a project where there is little or no technical documentation. It also shows that you UNDERSTAND what you are doing, at least most of the time.
Its easier to test too.
“Work smart, not hard”, “Don’t PlanDooooooo, PlaaaaaaaaanDo. Better for your health”