0
Why is there a semicolon and the braces after " Machine m1 = new Machine()" ?
Machine m1 = new Machine() { @Override public void start() { System.out.println("Wooooo"); } };
2 Respostas
+ 1
about that semicolon you can understand this way if it's not clear!!!
for a moment let us just ignore the overriding part.. so now the statement will look like this:
machine m1=new machine(); //eq1
so here we have used semicolon to terminate the statement as this is how we are suppose to create an object of a class.
now keeping above statement(eq1) in mind ,apply it to the real problem which involves the overriding part. overriding part begins just before the semicolon in the above statement(eq1).
0
Because you wonna override the method start().
And this is the way to tell The compiler what you want to do.
Remember if you don't use brace after start() method, the compiler thinks you want to create a new method with the same name,and this cause trouble.
And finally the }; sign tells the compiler that overriding ends here.