繁体   English   中英

Java - Upcasting 与多态性

[英]Java - Upcasting Vs Polymorphism

我是 Java 的新手。 我在探索 Java 概念时遇到了这些问题。 Upcasting and Polymorphism是一样的吗? 我对这两个术语感到困惑。

interface IWebdriver{
void closeBrowser()
}

Public class ChromeDriver implements IWebdriver{

public void closeBrowser(){
//Implementation
}
}

Public class FirefoxDriver implements IWebdriver{

public void closeBrowser(){
//Implementation
}
}

Public class InternetExplorerDriver implements IWebdriver{

public void closeBrowser(){
//Implementation
}
}

Main(){
IWebdriver driver;

driver = new ChromeDriver(); // Polymorphism or Upcasting ??
driver = new FirefoxDriver(); // Polymorphism or Upcasting ??
driver = new InternetExplorerDriver(); Polymorphism or Upcasting ??

}

driver = new ChromeDriver();// Polymorphism or Upcasting ??

多态性——多态性意味着不止一种形式,同一个对象执行不同的操作

铸造- 自动类型转换

任何人都可以请解释我的区别吗?

术语Casting指的是特定类型的对象被分配到的其他变量表达式

以下是隐式转换,

IWebdriver driver;

driver = new ChromeDriver(); // implicit cast
driver = new FirefoxDriver(); // implicit cast
driver = new InternetExplorerDriver(); // implicit cast

而下面的一个是显式转换,

IWebdriver driver;
... // some operations here
ChromeDriver chromeDriver = (ChromeDriver) driver; // explicit cast

术语Polymorphism是指对象在变量内的行为

例如,

IWebdriver driver;

if(case ==1) 
    driver = new ChromeDriver();
else 
    driver = new FireFoxDriver();

driver.closeBrowser(); // this call's behavior changes according to what object is assigned to the variable 'driver' and call that object's closeBrowser() behavior

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM