服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

代码简单描述 初学java语言之多态初体验

【赛迪网-it技术报道】本文面向java初学者,我们在教材上经常会看到java是多态的,可是一般的教科书只停留在理论上,很少有实际操作。现在把多态个概念用代码简单描述一下,由于本人水平有限,所以难免有不足之处。

首先我们有这样几个类,电脑,个人电脑,笔记本电脑。

class computer{   
       
    public void turnon(){   
    }   
}

现在有了电脑这个类,那么个人pc,笔记本都是继承他。

class pc extends computer{   
    public void turnon(){   
        system.out.println("pc has turn on");   
    }   
}   
  
class nb extends computer{   
    public void turnon(){   
        system.out.println("nb has turn on");   
    }   
}

我们看到,每个类都有一个 turnon()方法,而在父类中这个方法是空的,子类中各自有不同的实现,到这里可能还不太明显。如果有另外一个方法,要接受这些类作为参数,就像这样

class test{   
    public void go(computer computer){   
         computer.turnon();   
    }   
}

这个方法接收的是基类参数,当然我们是可以把子类传递给方法的,也应该这么做。

go(new pc());   
go(new nb());

这样他就会去调用具体子类的turnon()方法,所以这两次调用的输出是不一样的.如果不用基类作为参数,我们想调用每个子类的turnon()方法,那么就要些两个方法体一样的go()而接收不同的参数的重载。

public void go(pc computer){      
         computer.turnon();      
    }     
  
public void go(nb computer){      
         computer.turnon();      
    }

这样些也是正确的,但是这样会产生很多重复代码,而且也不易维护,当然这只是多态中最基本的一个部分,java多态机制还有很多特性,关于这些建议大家看看 java编程思想(think in java)这本书,里面讲的很详细,这里只是很简单的描述了一下,还望个各位高手不要见笑。

扫描关注微信公众号