Java多态初体验

简介:

Java多态初体验本文面向Java初学者,我们在教材上经常会看到Java是多态的,可是一般的教科书只停留在理论上,很少有实际操作。现在把多态个概念用代码简单描述一下,由于本人水平有限,所以难免有不足之处。 
    首先我们有这样几个类,电脑,个人电脑,笔记本电脑。

java 代码
class Computer{    
        
    public void turnOn(){    
    }    
}   
现在有了电脑这个类,那么个人PC,笔记本都是继承他。

java 代码
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()方法,而在父类中这个方法是空的,子类中各自有不同的实现,到这里可能还不太明显。如果有另外一个方法,要接受这些类作为参数,就像这样

java 代码
class Test{    
    public void go(Computer computer){    
         computer.turnOn();    
    }    
}   
这个方法接收的是基类参数,当然我们是可以把子类传递给方法的,也应该这么做。

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

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


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
7天前
|
Java
Java中的继承和多态是什么?请举例说明。
Java中,继承让子类继承父类属性和方法,如`class Child extends Parent`,子类可重写父类方法。多态允许父类引用指向子类对象,如`Animal a = new Dog()`,调用`a.makeSound()`会根据实际对象类型动态绑定相应实现,增强了代码灵活性和可扩展性。
9 0
|
14天前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
13 3
|
28天前
|
Java
【Java】一个简单的接口例子(帮助理解接口+多态)
【Java】一个简单的接口例子(帮助理解接口+多态)
16 0
|
1月前
|
Java
java多态详解
java多态详解
26 0
|
1月前
|
Java 程序员 编译器
Java继承与多态知识点详解
本文主要讲解的是Java中继承与多态的知识点
|
1月前
|
安全 Java 编译器
Java多态详解(2)
Java多态详解(2)
|
1月前
|
Java 编译器
Java多态详解(1)
Java多态详解(1)
C4.
|
1月前
|
Java
Java多态
Java多态
C4.
11 0
|
1月前
|
安全 Java 数据库连接
【Java每日一题】——第四十三题:编程用多态实现打印机.。分为黑白打印机和彩色打印机,不同类型的打印机打印效果不同。
【Java每日一题】——第四十三题:编程用多态实现打印机.。分为黑白打印机和彩色打印机,不同类型的打印机打印效果不同。
20 0
|
3月前
|
Java 编译器
重温经典《Thinking in java》第四版之第八章 多态(四十三)
重温经典《Thinking in java》第四版之第八章 多态(四十三)
28 1