Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/main/java/core/basesyntax/Bulldozer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package core.basesyntax;

public class Bulldozer extends Machine {
@Override

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The abstract methods must be declared as 'public abstract void doWork()' and 'public abstract void stopWork()' according to the task requirements. Currently they use package-private access.

public void doWork() {
System.out.println("Bulldozer started working");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The abstract method must be declared as 'public abstract void stopWork()' according to the task requirements. Currently it uses package-private access.

}

@Override
public void stopWork() {
System.out.println("Bulldozer stopped working");
}
}
13 changes: 13 additions & 0 deletions src/main/java/core/basesyntax/Excavator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package core.basesyntax;

public class Excavator extends Machine {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The abstract class should be public and its methods must be public as specified in the task: public abstract void doWork() and public abstract void stopWork(). Currently, the class has default (package-private) access.

@Override

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The doWork() method should be public abstract void doWork() as required by the task description. Without public, this won't compile because subclasses cannot reduce visibility when overriding.

public void doWork() {
System.out.println("Excavator started working");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The stopWork() method should be public abstract void stopWork() as required by the task description. Without public, this won't compile because subclasses cannot reduce visibility when overriding.

}

@Override

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The task requires calling methods in a loop for all machines, not explicit individual method calls.

public void stopWork() {
System.out.println("Excavator stopped working");
}
}
7 changes: 7 additions & 0 deletions src/main/java/core/basesyntax/Machine.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package core.basesyntax;

abstract class Machine {
public abstract void doWork();

public abstract void stopWork();
}
8 changes: 7 additions & 1 deletion src/main/java/core/basesyntax/MainApp.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package core.basesyntax;

public class MainApp {

public static void main(String[] args) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The abstract methods must be declared as public abstract void doWork() and public abstract void stopWork() according to the task requirements. Currently, they have default (package-private) access.

Machine[] machines = {new Truck(), new Bulldozer(), new Excavator()};
for (Machine machine : machines) {
machine.doWork();
machine.stopWork();
}
}
}
13 changes: 13 additions & 0 deletions src/main/java/core/basesyntax/Truck.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package core.basesyntax;

public class Truck extends Machine {
@Override
public void doWork() {
System.out.println("Truck started working");
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the checklist, redundant empty lines should not be added after method declarations. Consider removing the empty line between doWork() and stopWork() methods for cleaner code.


@Override
public void stopWork() {
System.out.println("Truck stopped working");
}
}
Loading