继承和接口的用处

注:文章内容由网络及相关书籍整理而来,如此只为共享知识,给予帮助。

重写是Java中多态的一种表现,举例说明:

public class Father{
   public void hitChild(){    
   System.out.println("又不听话,看我怎么收拾你。");  
   }
}
public class F1 extends Father{
   public void hitChild(){
      System.out.println("打一拳。");
   }
}
public class F2 extends Father{
   public void hitChild(){
      System.out.println("踢一脚。");
   }
}
public class F3 extends Father{
   public void hitChild(){
      System.out.println("扇一个嘴巴。");
   }
}
public class Test{
   public static void main(String args[]){
      Father father;
      father=new Father();     
      father.hitChild();
      father = new F1();
      father.hitChild();
      father = new F2();
      father.hitChild();
      father = new F3();
      father.hitChild();
   }
}

运行结果:

C:\java>java Test
又不听话,看我怎么收拾你。
打一拳。
踢一脚。
扇一个嘴巴。

     Java中没有多继承,即一个类不能同时继承多个类。但一个类可以同时实现多个接口,如下:
public class F implements Father1,Father2,Father3{ }

     接口有利于代码功能的扩展(增加新的功能)。而继承则有利于代码功能的修改(把旧的功能改成新的功能)。这里旧功能的修改和新功能的增加前提是保留旧类源码,旧的功能仍然可以使用。

接着上面的继承举例:上面例子中的子类我们统称为一代子类

一. 用继承修改旧的功能

     现在如果一代子类F1的功能——“打孩子”,也就是方法hitChild()里边的功能实现有问题,我们要把具体实现修改掉,那么我们可以重新写一个新的二代子类F11继承自一代子类F1,并重写其hitChild()方法。

//二代子类
public class Son11 extends Son1{
   //重写父类“打孩子”方法
   public void hitChild(){
      System.out.println("我是二代子类对此方法的新实现");
   }
}

二. 用接口实现增加新的功能

     类F1已经有了“打孩子”功能,而我们有了新的需求,要给它增加一个新功能“宠孩子”(新方法pet()),而旧的代码不能动。那么我们可以定义一个新的接口(PetInterFace),接口里定义这个方法pet()的声明。再重新写一个二代子类F11,让它先继承类F1,同时实现接口 PetInterFace,并实现接口里的 pet()方法。
//新接口
public interface PetInterFace{
   //新方法
   public void petChild();
}
//二代子类
public class F11 extends F1 implements PetInterFace{
   //实现接口方法
   public void petChild(){
      System.out.println("父亲很爱我!");
   }
}
     这样这个二代子类F11即有了老的功能hitChild(),又有了新的功能petChild()。

转载于:https://www.cnblogs.com/dabeng/archive/2008/05/11/1191777.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值