原来多态还可以这样

这种多态是用抽象类实现的

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
A a=new C();
a.f();
}

}
abstract class A {

protected void m1(){
System.out.println("A m1()");
m2();
}
protected abstract void m2();
public abstract void f();
}
class B extends A {

@Override
protected void m2() {
System.out.println("B m2");
}
public void f(){
System.out.println("B f");
this.m1();
}

}
class C extends A {

@Override
protected void m2() {
System.out.println("C m2()");
}

public void f(){
System.out.println("C f()");
this.m1();
}

}

学了java也有一年半了吧,也做过项目了,可是今天我无意中看到一位朋友这样用了多态,原来还有这样用,真实惭愧!!!哈哈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值