Java(17)多态性(面向对象特征三)
2021-03-30 15:25
标签:薪资 this 抽象类 protected over 应用 国家 system lov 多态性在Java中有三种体现: 对象的多态性:Java引用变量有两个类型,编译时类型,运行时类型。编译时类型有声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就出现了多态。 多态是指,针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。 多态的特性就是,运行期才能动态决定调用的子类方法。对某个类型调用某个方法,执行的实际方法可能是某个子类的覆写方法。这种不确定性的方法调用,究竟有什么作用? Java(17)多态性(面向对象特征三) 标签:薪资 this 抽象类 protected over 应用 国家 system lov 原文地址:https://www.cnblogs.com/jimmy888/p/13580868.html多态性(面向对象特征三)
package test;
class PrintA{
public void fun(){
System.out.println("I love you");
}
}
class James extends PrintA{
@Override
public void fun(){
System.out.println("I love you James.");
}
}
class Kobe extends PrintA{
@Override
public void fun(){
System.out.println("I love you Kobe.");
}
}
public class Iloveyou{
public static void printName(PrintA b){ //
b.fun();
}
public static void main(String[] args) {
printName(new Kobe());
}
}
//运行结果为:I love you kobe.
(x-5000)*0.2
,对于享受国家优惠的,收税0。计算给出的几个人不同税的总和。package test;
class IncomeTax { //对于收入
protected double income;
public IncomeTax(double income) {
this.income = income;
}
public double tax() {
return this.income * 0.1;
}
}
class SalaryTax extends IncomeTax { //对于工作薪资
public SalaryTax(double income) {
super(income);
}
@Override
public double tax() {
return (this.income - 5000) * 0.2;
}
}
class SpecialTax extends IncomeTax {//对于享受国家优惠的特殊人群收入
public SpecialTax(double income) {
super(income);
}
@Override
public double tax() {
return 0;
}
}
public class MainClass { //运行类
public static void main(String[] args) {
IncomeTax[] a = new IncomeTax[]{new IncomeTax(4000), new IncomeTax(34500),
new SalaryTax(9000), new SpecialTax(454564)};
System.out.println(totalTax(a));
}
public static double totalTax (IncomeTax...b){
double total = 0;
for (IncomeTax it:b){
total=total+it.tax();
}
return total;
}
}
//运行结果为4650.0
/*
利用多态,totalTax()方法只需要和IncomeTax打交道,它完全不需要知道SalaryTax和SpercialTax的存在,就可以正确计算出总的税。如果我们要新增一种稿费收入,只需要从IncomeTax派生,然后正确重写Tax()方法就可以。把新的类型传入totalTax(),不需要修改任何代码。
*/
上一篇:Java(18)抽象类
下一篇:Java(16)java转型问题
文章标题:Java(17)多态性(面向对象特征三)
文章链接:http://soscw.com/index.php/essay/70037.html