复用代码是java众多引人注目的功能之一,但想要成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,他还必须能够做更多的事情。 复用类在thinking in java中讲解了两种方法,一个是组合,另外一个便是继承.
组合:这种比较直观;只需在新的类中创建现有类的对象,调用该对象的方法。这种方式只是复用了现有程序代码的功能,并非它的形式。
example:
class insect {
void fly(String name){
System.out.println(name+" is flying!");
}
void shout(String name){
System.out.println(name + " is shouting");
}
}
public class Multiplex extends insect{
String name;
public static void main(String[] args) {
Multiplex m = new Multiplex();
m.name = "beetle";
m.shout(m.name);
m.fly(m.name);
}
继承:相比组合,这种方法更细腻一些,他按照现有类的类型来创建新类,无需改变现有类的形式,采用现有类的形式并在新类中添加新的代码,这就是继承,继承是面向对象程序设计的基石之一。关键字extends
example:
class insect {
void fly(String name){
System.out.println(name+" is flying!");
}
void shout(String name){
System.out.println(name + " is shouting");
}
}
public class Multiplex extends insect{
String name;
public static void main(String[] args) {
Multiplex m = new Multiplex();
m.name = "beetle";
m.shout(m.name);
m.fly(m.name);
}