RUBY的类封装,继承,多态简单演示

简介:

复制代码
class Person
    def initialize(name,age=18)
        @name=name
        @age=age
        @motherland="China"
    end
    def talk
        puts "my name is " +@name+",age is "+@age.to_s
        if @motherland == "China"
            puts "I am a China."
            else
                puts "I am a foreigner."
                end
            end
            attr_writer:motherland
            end
        p1=Person.new("Kaichuan",20)
        p1.talk
        p2=Person.new("Ben")
        p2.motherland="ABC"
        p2.talk
        
        class Student < Person
            def talk
                puts "I am a student. my name is " +@name+",age is " +@age.to_s
            end
        end
        p3=Student.new("Chengang","25");
        p3.talk
        p4=Student.new("Ben");
        p4.talk
        
        class Worker < Person
            def talk
                puts "I am a worker. my name is " +@name +",age is " + @age.to_s
            end
        end
        p5=Worker.new("Hiong",30)
        p5.talk
        p6=Worker.new("Ben")
        p6.talk
        
        
        
    
class Person
    def initialize(name,age=18)
        @name=name
        @age=age
        @motherland="China"
    end
    def talk
        puts "my name is " +@name+",age is "+@age.to_s
        if @motherland == "China"
            puts "I am a China."
            else
                puts "I am a foreigner."
                end
            end
            attr_writer:motherland
            end
        p1=Person.new("Kaichuan",20)
        p1.talk
        p2=Person.new("Ben")
        p2.motherland="ABC"
        p2.talk
        
        class Student < Person
            def talk
                puts "I am a student. my name is " +@name+",age is " +@age.to_s
            end
        end
        p3=Student.new("Chengang","25");
        p3.talk
        p4=Student.new("Ben");
        p4.talk
        
        class Worker < Person
            def talk
                puts "I am a worker. my name is " +@name +",age is " + @age.to_s
            end
        end
        p5=Worker.new("Hiong",30)
        p5.talk
        p6=Worker.new("Ben")
        p6.talk
        
        
        
    
复制代码

>ruby hello.rb
my name is Kaichuan,age is 20
I am a China.
my name is Ben,age is 18
I am a foreigner.
I am a student. my name is Chengang,age is 25
I am a student. my name is Ben,age is 18
I am a worker. my name is Hiong,age is 30
I am a worker. my name is Ben,age is 18
>Exit code: 0

目录
相关文章
|
开发者 编解码
界面适应奥秘:从自适应布局到图片管理,Xamarin响应式设计全解析
【8月更文挑战第31天】在 Xamarin 的世界里,构建灵活且适应性强的界面是每位开发者的必修课。本文将带您探索 Xamarin 的响应式设计技巧,包括自适应布局、设备服务协商和高效图片管理,帮助您的应用在各种设备上表现出色。通过 Grid 和 StackLayout 实现弹性空间分配,利用 Device 类检测设备类型以加载最优布局,以及使用 Image 控件自动选择合适图片资源,让您轻松应对不同屏幕尺寸的挑战。掌握这些技巧,让您的应用在多变的市场中持续领先。
146 0
|
开发者 测试技术 Android开发
Xamarin 开发者的五大常见问题及解决方案:从环境搭建到性能优化,全面解析高效跨平台应用开发的技巧与代码实例
【8月更文挑战第31天】Xamarin 开发者常遇问题及解决方案覆盖环境搭建至应用发布全流程,助新手克服技术难关。首先需正确安装配置 Visual Studio 及 Xamarin 支持,设置 iOS/Android 测试环境。利用 Xamarin.Forms 和 XAML 实现高效跨平台开发,共享 UI 和业务逻辑代码。针对性能优化,采取减少 UI 更新、缓存计算结果等措施,复杂问题则借助 Xamarin Profiler 分析。
221 0
|
Ruby
|
Ruby
|
Ruby
|
调度 Ruby