组合:import com.aa; import com.bb; public class ccc{ ........... aa.com1=new aa(); bb com2=new bb(); //生成它们的实例 public String getChange(float f1,float f2){ .............. com1.sendMess(); com2.sendMess(); com2.receiveMess();//在 bb的业务方法中调用 aa与bb中的业务方法 } .......
继承: package InherienceTest.BaseClass;//package 后可以被继承,但是不能执行 public class BaseClass { public BaseClass(){ System.out.println("I'm the Constructor Function in BaseClass!"); } protected static void FuncTest(){ System.out.println("This is a Function Test in BaseClass!");//Static Methord } public static void main(String[] args){ FuncTest(); System.out.println("This is the BaseClass!"); System.out.println(new java.util.Date());
继承就是在申明类的时候使用extends关键字,然后该类就自动集成了父类的所有函数,可以复写父类的函数,也可以申明新的函数
要决定一个是应该继承另一个类,还是使用另一个类,基本原则是看该类是否有向上转型的必要。如无必要,则优先使用组合
import com.bb; public class ccc{
...........
aa.com1=new aa();
bb com2=new bb();
//生成它们的实例 public String getChange(float f1,float f2){
..............
com1.sendMess();
com2.sendMess();
com2.receiveMess();//在 bb的业务方法中调用 aa与bb中的业务方法
}
.......
package InherienceTest.BaseClass;//package 后可以被继承,但是不能执行
public class BaseClass
{
public BaseClass(){
System.out.println("I'm the Constructor Function in BaseClass!");
}
protected static void FuncTest(){
System.out.println("This is a Function Test in BaseClass!");//Static Methord
}
public static void main(String[] args){
FuncTest();
System.out.println("This is the BaseClass!");
System.out.println(new java.util.Date());
}
};
import InherienceTest.BaseClass.BaseClass;//相当于路径:path & InherienceTest\BaseClass\BaseClass.class
public class InherienceTest extends BaseClass//注意:public主类名必须和文件名相同
{ //基类不能和派生类在同一目录下面。
public static void main(String[] args) //main函数必须是pulic static
{
InherienceTest xx=new InherienceTest();//构造函数被执行
xx.FuncTest(); //调用继承的方法
System.out.println("Hello World!");
}
}