结构 / 继承

trait Shape {
    fn new(side_length: i32) -> Self;
    fn get_area(&self) -> i32;
}

struct Square {
    side_length: i32
}

impl Shape for Square {
    fn new(side_length: i32) -> Self {
        Square {
            side_length: side_length
        }
    }

    fn get_area(&self) -> i32 {
        self.side_length * self.side_length
    }    


let square = Square::new(5);
let area = square.get_area();
//area is 25

print!("area is {area}");