java多态的应用 - Java / Java SE
interface animal{
void sayHi();
String getName();
}
class dog implements animal{
public void sayHi(){
System.out.println("I am "+getName()+bark());
}
public String bark(){
return "wang-wang";
}
public String getName(){
return "Bob.";
}
}
class bulldog extends dog{
public String getName(){
return "Mike.";
}
public String bark(){
return "wow-wow";
}
}
public class test2{
public static void main(String args[]){
animal b=new bulldog();
dog d=(dog)b; //A
check(d);
dog dd=(bulldog)b; //B
check(dd);
}
public static void check(dog d){
System.out.println("I am "+d.getName());
}
public static void check(bulldog d){
System.out.println("I am "+d.getName());
}
}
//A和B处怎么理解的阿?B处dog dd=(bulldog)b;是父类dog引用指向子类对象bulldog吗?A处理解成将一只公狗强制转换成一只狗?然后调用check(dog d)方法,d.getName();怎么还是调用公狗的getName()方法?
要晕了啊...
{{----
相关问答:
本人正在用Java做一个C/S架构的项目,
可是由于项目比较大,前期对架构的设计尤其重要,因为后期可能随时会加个功能或者去掉某些功能。
所以特地寻求如何设计C/S的架构使程序更加面向对象更加易于维 ......
我JSP的页面是:
<%@ page language="java" contentType="text/html; charset=gb2312"
%>
<script>
function Save(){
xmlHttp=GetXmlHttpObject()
if(xmlHttp==nul ......
程序如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import ......
Java code:
......
synchronized(user){
int loginNum = Integer.parseInt(Main_Client_Dia.jtf2.getText().trim());
Main_Client_Dia.jtf2.setText("");
loginNum++;
......