После ответа @ patrick-desjardins я реализовал абстрактный и его класс реализации вместе с @Test
следующим образом:
Абстрактный класс - ABC.java
import java.util.ArrayList;
import java.util.List;
public abstract class ABC {
abstract String sayHello();
public List<String> getList() {
final List<String> defaultList = new ArrayList<>();
defaultList.add("abstract class");
return defaultList;
}
}
Как Абстрактные классы не могут быть созданы, но они могут быть разделены на подклассы , конкретный класс DEF.java , выглядит следующим образом:
public class DEF extends ABC {
@Override
public String sayHello() {
return "Hello!";
}
}
@ Test класс для проверки как абстрактного, так и неабстрактного метода:
import org.junit.Before;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.contains;
import java.util.Collection;
import java.util.List;
import static org.hamcrest.Matchers.equalTo;
import org.junit.Test;
public class DEFTest {
private DEF def;
@Before
public void setup() {
def = new DEF();
}
@Test
public void add(){
String result = def.sayHello();
assertThat(result, is(equalTo("Hello!")));
}
@Test
public void getList(){
List<String> result = def.getList();
assertThat((Collection<String>) result, is(not(empty())));
assertThat(result, contains("abstract class"));
}
}