java派生类如何使用_继承:使用基类或派生类来做东西[关闭]
這是一個關(guān)于應(yīng)該使用繼承方式的簡單問題 .
考慮到我必須提供業(yè)務(wù)邏輯來打印'foo'和'bar'并且我有兩個類的層次結(jié)構(gòu):一個具有僅打印'foo'的方法和另一個首先擴(kuò)展并具有打印'bar'的方法 . 在這兩個類中,我有一個名為 necessaryMethod() 的方法,負(fù)責(zé)調(diào)用那些打印'foo'和'bar'的方法 .
我用兩種方法實(shí)現(xiàn)它的方式:
第一種方法是讓基類做一些事情,派生類利用它 . 第二種方法是讓基類不做任何事情(只提供實(shí)現(xiàn))并將所有責(zé)任放在派生類上 .
請考慮以下代碼:
Approach 1:
public class A{
protected void necessaryMethod(){
callFoo();
}
protected void callFoo(){
System.out.pritln("foo");
}
}
public class B extends A{
@Override
protected void necessaryMethod(){
super.necessaryMethod();
callBar();
}
protected void callBar(){
System.out.println("bar");
}
}
public class FooBarClass{
public static void main(String args[]){
B b = new B();
b.necessaryMethod();
}
}
Approach 2:
public abstract class A{
protected abstract void necessaryMethod();
protected void callFoo(){
System.out.pritln("foo");
}
}
public class B extends A{
@Override
protected void necessaryMethod(){
calFoo();
callBar();
}
protected void callBar(){
System.out.println("bar");
}
}
public class FooBarClass{
public static void main(String args[]){
B b = new B();
b.necessaryMethod();
}
}
哪種方法對于代碼的可維護(hù)性和可讀性是很好的(在大型軟件產(chǎn)品/大類層次結(jié)構(gòu)的上下文中;這只是一個例子)?
(這是一個通用的編程問題 . 我沒有征求意見 . )
總結(jié)
以上是生活随笔為你收集整理的java派生类如何使用_继承:使用基类或派生类来做东西[关闭]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pbem00是什么意思
- 下一篇: java在进行修改时报400_java开