コードをたどっていくと、
protected abstract Object getResultDataDetail(M2 obj)
というような、{ }が全くないようなメソッドをスーパークラスで目にすることがあります。これは、抽象メソッドというもので、継承されたサブクラスで必ずオーバーライドされるようなメソッドです。
スーパークラス中で直接用いられないことが前提です。
必ずオーバーライドすることを明示する場合、もしくはあらかじめ変数の数などを固定するために使われます。
参考:https://www.javadrive.jp/start/abstract/index1.html