Inheritance order - Java OOP

I'm trying to figure out the way by which Java chooses which constructor to use in a specific case. My code currently has a main class and a client, both for the purpose of testing and learning about the way classes work in Java.

Your code has many errors and misunderstanding of basic concepts like local vs field, instance vs static... I'll stick strictly to your questions but I recommend you read Oracle's tutorials and/or a good introduction book about Java.

Why did Java take level 1 to be 0.0, and not 5.0 as anticipated? How
do I make my code such that Java outputs 5.0?

Because your code double level1 = 5; is not setting the static field. You're declaring a local variable inside the constructor and setting it to 5. If you want to set the static field in the constructor (which is a very bad design idea) you can write level1 = 5;. Ideally, you should remove static from static double level1; and put private instead.

private double level1;

So what does static do?

Static defines a field as class-wide, meaning all instances from this class will have the same value. If you change this field value, it will change on all other instances as well. More details about what static is for here.