Skip to content

Commit ae400f3

Browse files
authored
BAEL-5132 Abstract class constructors examples (eugenp#11389)
1 parent 0dd2aa5 commit ae400f3

13 files changed

Lines changed: 180 additions & 0 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.baeldung.abstractconstructors.defaultconstructor;
2+
3+
public abstract class AbstractClass {
4+
// compiler creates a default constructor
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.baeldung.abstractconstructors.defaultconstructor;
2+
3+
public class ConcreteClass extends AbstractClass {
4+
5+
public ConcreteClass() {
6+
super();
7+
}
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.baeldung.abstractconstructors.noargs;
2+
3+
public abstract class AbstractClass {
4+
5+
public AbstractClass() {
6+
System.out.println("Initializing AbstractClass");
7+
}
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.baeldung.abstractconstructors.noargs;
2+
3+
public class ConcreteClassA extends AbstractClass {
4+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.baeldung.abstractconstructors.noargs;
2+
3+
public class ConcreteClassB extends AbstractClass {
4+
5+
public ConcreteClassB() {
6+
System.out.println("Initializing ConcreteClassB");
7+
}
8+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.baeldung.abstractconstructors.noargs;
2+
3+
public abstract class Counter {
4+
5+
int value;
6+
7+
private Counter() {
8+
this.value = 0;
9+
System.out.println("Counter No-Arguments constructor");
10+
}
11+
12+
public Counter(int value) {
13+
this.value = value;
14+
System.out.println("Parametrized Counter constructor");
15+
}
16+
17+
abstract int increment();
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.baeldung.abstractconstructors.noargs;
2+
3+
public class SimpleCounter extends Counter {
4+
5+
public SimpleCounter(int value) {
6+
super(value);
7+
}
8+
9+
@Override
10+
int increment() {
11+
return ++value;
12+
}
13+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.baeldung.abstractconstructors.parametrized;
2+
3+
public abstract class Car {
4+
5+
private int distance;
6+
7+
private Car(int distance) {
8+
this.distance = distance;
9+
}
10+
11+
public Car() {
12+
this(0);
13+
System.out.println("Car default constructor");
14+
}
15+
16+
abstract String getInformation();
17+
18+
protected void display() {
19+
String info = new StringBuilder(getInformation())
20+
.append("\nDistance: " + getDistance())
21+
.toString();
22+
System.out.println(info);
23+
}
24+
25+
public int getDistance() {
26+
return distance;
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.baeldung.abstractconstructors.parametrized;
2+
3+
public class ElectricCar extends Car {
4+
5+
int chargingTime;
6+
7+
public ElectricCar(int chargingTime) {
8+
this.chargingTime = chargingTime;
9+
}
10+
11+
@Override
12+
String getInformation() {
13+
return new StringBuilder("Electric Car")
14+
.append("\nCharging Time: " + chargingTime)
15+
.toString();
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.baeldung.abstractconstructors.parametrized;
2+
3+
public class FuelCar extends Car {
4+
5+
String fuel;
6+
7+
public FuelCar(String fuel) {
8+
this.fuel = fuel;
9+
}
10+
11+
@Override
12+
String getInformation() {
13+
return new StringBuilder("Fuel Car")
14+
.append("\nFuel type: " + fuel)
15+
.toString();
16+
}
17+
}

0 commit comments

Comments
 (0)