<%@ page contentType="text/html; charset=gb2312"%> Java中使用接口实现多继承和多态的方法
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Java中使用接口实现多继承和多态的方法
     发布者: 发布时间:2007-09-06
1.JAVA里没有多继承,一个类之能有一个父类。


而继承的表现就是多态。一个父类可以有多个子类,而在子类里可以重写父类的方法(例如方法print()),这样每个子类里重写的代码不一样,自然表现形式就不一样。这样用父类的变量去引用不同的子类,在调用这个相同的方法print()的时候得到的结果和表现形式就不一样了,这就是多态,相同的消息(也就是调用相同的方法)会有不同的结果。举例说明:



//父类
public class Father{
//父类有一个打孩子方法
public void hitChild(){}
}
//子类1
public class Son1 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("为什么打我?我做错什么了!"); }
}
//子类2
public class Son2 extends Father{
//重写父类打孩子方法 public void hitChild(){
System.out.println("我知道错了,别打了!"); }
}
//子类3
public class Son3 extends Father{
//重写父类打孩子方法 public void hitChild(){
System.out.println("我跑,你打不着!"); }
}
//测试类
public class Test{
public static void main(String args[]){
Father father;
father = new Son1();
father.hitChild();
father = new Son2();
father.hitChild();
father = new Son3();
father.hitChild();
}
}



都调用了相同的方法,出现了不同的结果!这就是多态的表现!


2.JAVA中没有多继承,而用接口实现了多继承!一个类或是可以同时实现多个接口!(就相当于C++里一个类同时继承了多个类!)例如:



public class Son implements Father1,Father2,Father3{

}



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


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


1.用继承修改旧的功能。


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



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



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


现在类Son1已经有了‘打孩子’功能(也就是方法),而我们有了新的需求,我们需要它还要有一个新的功能‘宠孩子’(新方法pet();)。而旧的代码不能动!那么我们可以定义一个新的接口(PetInterFace),接口里定义这个方法pet()的声明。再重新写一个二代子类Son11,让它先继承类Son1,同时实现接口 PetInterFace!并实现接口里的 pet()方法!



//新接口
public interface PetInterFace{
//新功能方法 public void pet();
}
//二代子类
public class Son11 extends Son1 implements PetInterFace{
//实现接口方法
public void pet(){
System.out.println("父亲很爱我!");
}
}



这样这个二代子类即有了老的方法,又有新的功能!
    
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
提升JSP中页面响应速度的七大秘籍绝招
JSP连接ORACLE数据库时注意的一些问题
windows2003负载均衡遇到的问题
敏捷团队建设
Hibernate的检索策略小结
AJAX推送与拉取方式的比较
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(8679)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(2752)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(8813)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(4089)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(3213)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(3380)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(3320)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(8535)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(2256)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号