JAVA多态的安全性_浅谈java中的多态性

讲到多态,就必须牵扯到继承和接口。至于多态强大的功能,目前水平有限,暂时还没有很明显地体会到。

我们先看 多态+继承

package test;

public class Test {

public static void main(String[] args) {

A test = new B();

test.testA(100);

}

}

class A {

int i = 0;

void testA(int i) {

this.i = i;

System.out.println("i的值为:"+i);

}

void print() {

System.out.println("此时i的值已经变为:"+i);

}

}

class B extends A {

void testA(int i) {

System.out.println("hello,hushunfeng!!"+i);

}

void testA(String str) {

System.out.println("hello,my girl!!"+str);

}

void testB(int i) {

System.out.println(i);

}

}

运行结果:hello,hushunfeng!!100

分析:A test = new B();就是一个多态的体现。test是B的对象的一个引用,而它的类型是A。当我们调用testA(int i)函数,如果B中覆盖了testA(int i),那么就调用B类中testA(int i)中的内容进行执行。如果B没有对testA(int i)进行覆盖,则调用A类中的testA(int i)进行运行。如下代码。

class B extends A {

/*void testA(int i) {

System.out.println("hello,hushunfeng!!"+i);

}*/

void testA(String str) {

System.out.println("hello,my girl!!"+str);

}

void testB(int i) {

System.out.println(i);

}

}

那么运行结果为:i的值为:100

如果我们调用B中特有的testB(int i)时,编译器就会报错,说明语法上是不允许这么操作的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值