Skip to content

Commit

Permalink
added implementation of abstract class machine and its subclasses
Browse files Browse the repository at this point in the history
  • Loading branch information
sonyasapsan committed Aug 7, 2023
1 parent ea616af commit 034545f
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/main/java/core/basesyntax/MainApp.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
package core.basesyntax;

public class MainApp {
import core.basesyntax.machine.Bulldozer;
import core.basesyntax.machine.Excavator;
import core.basesyntax.machine.Machine;
import core.basesyntax.machine.Truck;

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

public class Bulldozer extends Machine {
@Override
public void doWork() {
System.out.println("Bulldozer is doing its work!" + super.getStrength());
}

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

public class Excavator extends Machine {
@Override
public void doWork() {
System.out.println("Excavator is doing its work!" + super.getStrength());
}

@Override
public void stopWork() {
System.out.println("Excavator has stopped its work!" + super.getRelaxing());
}
}
23 changes: 23 additions & 0 deletions src/main/java/core/basesyntax/machine/Machine.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package core.basesyntax.machine;

public abstract class Machine {
private String strength = "💪"; //just for fun
private String relaxing = "🦥"; //just for fun x2

public abstract void doWork();

public abstract void stopWork();

/*
* I've decided to set package access for these methods because
* I don't want MainApp class to have access to these methods.
* */

String getStrength() {
return strength;
}

String getRelaxing() {
return relaxing;
}
}
13 changes: 13 additions & 0 deletions src/main/java/core/basesyntax/machine/Truck.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package core.basesyntax.machine;

public class Truck extends Machine {
@Override
public void doWork() {
System.out.println("Truck is doing its work!" + super.getStrength());
}

@Override
public void stopWork() {
System.out.println("Truck has stopped its work!" + super.getRelaxing());
}
}

0 comments on commit 034545f

Please sign in to comment.