09-多态(Java和Rust对比)RUST: 特征引用指向特征实现

文章探讨了Java和Rust两种编程语言中的多态特性。在Java中,通过父类引用指向子类对象以及使用父类的接口方法实现多态。而在Rust中,利用dyn关键字和trait实现动态多态,展示了Sheep和Cow两个结构体如何实现Noisetrait并调用noise方法。
摘要由CSDN通过智能技术生成

一、Java的多态

父类引用指向子类对象;

 List list = new ArrayList();

父类的接口方法,取决于实现子类;

二、Rust的多态(dyn)

struct Sheep{}
struct Cow{}

pub trait Noise{
    fn noise(&self);
}

impl Noise for Sheep {
    fn noise(&self) {
        println!("baaaaah!")
    }
}
impl Noise for Cow {
    fn noise(&self) {
        println!("moooooo!!")
    }
}



fn main(){
    let mut noise : Box<dyn Noise> =Box::new(Sheep{});
    noise.noise();
    noise = Box::new(Cow{});
    noise.noise();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值