java - 如何最小化层次结构的代码量
问题描述
这是为了学习。我有一个由 2 个类实现的接口,我应该减少我使用的代码量,以使事情更干净,更少混乱。目前,代码如下所示:
public abstract class VClass implements IntFace {
protected String name;
public VClass(String name) {
this.name = name;
}
public int value (SClass sc) {//comes from a diff class
return sc.lookup(name);
}
public String getName() {
return name;
}
@Override
public String toString() {
return getName();
}
}
public abstract class NClass extends VClass implements IntFace {
public Number(String name) {
super(name);
this.name = name;
}
public int value (SClass sc) {
return sc.lookup(name);
}
public String getName() {
return name;
}
@Override
public String toString() {
return getName();
}
}
public interface IntFace {
public int value (SClass sc);
public String toString (int num);
}
这段代码可以更简洁吗?
解决方案
您可以从代码中删除以下内容:
implements IntFace
从NClass
声明。由于NClass extends VClass
,它也实现IntFace
了。this.name = name;
从NClass
构造函数。name
在超类构造函数中初始化value
和getName
方法来自NClass
。这些方法在超类中实现。public
来自接口方法声明的修饰符。接口中public
的方法是默认的。
现在您也可以制作name
字段private
,因为它不再用于NClass
.
推荐阅读
- android - 如何制作从上到下稍微弯曲的反应角?我的意思是顶部的从上到下的曲线
- regex - 正则表达式删除除字符串以外的所有文本
- python - 无法运行由 pyinstaller 创建的 exe 文件
- networkx - 区分不同颜色的类 Networkx
- python - 在 Django Rest Framework 中,编写自定义函数来过滤 db
- html - 响应式滚动背景问题
- reactjs - 如何从反应组件中的按钮组中获取值
- hive - 为什么 Hive 不喜欢这个查询?
- python - 通道。2 暴力 Python 语法错误:ValueError:int() 的无效文字,基数为 10:'21,'
- r - 使用 `Matrix::sparseMatrix` [R] 创建稀疏矩阵时列的顺序错误