精华内容
下载资源
问答
  • 多态实例 千次阅读
    2018-07-31 08:37:18
    #include <iostream>
    #include <string>
    #include <vector>
    
    using namespace std;
    
    
    struct Base
    {
        string baseName;
    };
    
    struct SubA : public Base
    {
        string subName_A;
    };
    
    struct SubB : public Base
    {
        string subName_B;
    };
    
    //by zhaocl
    int main()
    {
        //init
        Base * base;
        base->baseName = "baseName";
    
        A a;
        B b;
        a.baseName = "baseA";
        a.subName_A = "subA";
        b.baseName = "baseB";
        b.subName_B = "subB";
        
        //此时只能访问基类成员
        base = &a;
        cout << base->baseName << endl;
        base = &b;
        cout << base->baseName << endl;
        
        //访问所有成员
        cout << ((SubA*)base)->baseName << endl;
        cout << ((SubA*)base)->subName_A << endl;
        return 0;
    }

    说明:

    1、struct和class的区别这里就不赘述了,同理class

    扩展:

    1、实际应用:有多个文件存在,他们有共同的属性,也有不同的属性。为了便于区分和管理,我们需要设计一个合理的类结构。比如一个基类,其中包含共有属性,每个文件是它的子类,包含各自的属性,而不是每个文件一个单独的类。这样,我们操作共同属性时,可以定义一个基类指针就可以了,而不是分别定义多个类。

     

    更多相关内容
  • java 多态实例

    2015-08-25 15:24:39
    一个简单的多态实例,包含interface,abstract class 以及两种排序方式
  • JS中的多态实例详解

    2020-11-29 12:55:38
    多态在面向对象编程语言中是十分重要的。在JAVA中是通过继承来得到多态的效果。如下: public abstract class Animal { abstract void makeSound(); // 抽象方法 } public class Chicken extends Animal{ public ...
  • Python中的多态实例

    2021-12-22 21:13:45
    class Animal(object): def eat(self) : print('Animal eat something') class Dog(Animal): def eat(self) : print('Dog eats meat') class Cat(Animal): print('Cat eats fish') animal = Animal() ...
    class Animal(object):
    	def eat(self) :
    		print('Animal eat something')
    class Dog(Animal):
    	def eat(self) :
    		print('Dog eats meat')
    class Cat(Animal):
    		print('Cat eats fish')
    
    animal = Animal()
    dog = Dog()
    cat = Cat()
    animal.eat()
    dog.eat()
    cat.eat()
    

    输出

    Cat eats fish
    Animal eat something
    Dog eats meat
    Animal eat something
    [Finished in 0.4s]
    
    展开全文
  • C++ 通过指针实现多态实例详解 1.父类(DBConnector) 1)DBConnector.h #include using namespace std; class DBConnector { private: string name; public: DBConnector(); DBConnector(string _name); ~...
  • C# 多态实例

    2021-08-27 17:10:38
    1、C#中的访问修饰符 public:公开的公共的。 private:私有的,只能在当前类的内部访问。 protected:受保护的,只能在当前类的内部以及该类的子类中访问。 internal:只能在当前项目中访问。在同一个项目中,internal...

    1、C#中的访问修饰符
    public:公开的公共的。
    private:私有的,只能在当前类的内部访问。
    protected:受保护的,只能在当前类的内部以及该类的子类中访问。
    internal:只能在当前项目中访问。在同一个项目中,internal和public的权限是一样的。
    protected internal:protected+internal
    1)、能够修饰类的访问修饰符只有两个:public、internal。
    2)、可访问性不一致
    子类的访问权限不能高于父类的访问权限,会暴露父类的成员。
    2、设计模式
    设计这个项目的一种方式。
    3、简单工厂设计模式。

    using System;
    
    namespace 简单工厂设计
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入您想要得笔记本品牌");
                string brand = Console.ReadLine();
                NoteBook nb = GetNoteBook(brand);
                nb.SayHello();
                Console.ReadKey();
            }
    
            public static NoteBook GetNoteBook(string brand)
            {
                NoteBook nb = null;
                switch(brand)
                {
                    case "Lenovo":nb = new Lenovo();
                        break;
                    case "IBM":nb = new IBM();
                        break;
                    case "Acer":nb = new Acer();
                        break;
                    case "Dell":nb = new Dell();
                        break;
                }
                return nb;
            }
        }
    
        public abstract class NoteBook
        {
            public abstract void SayHello();
        }
    
        public class Lenovo:NoteBook
        {
            public override void SayHello()
            {
                Console.WriteLine("我是联想笔记本");
            }
        }
    
        public class Acer:NoteBook
        {
            public override void SayHello()
            {
                Console.WriteLine("我是鸿基笔记本");
            }
        }
        public class Dell:NoteBook
        {
            public override void SayHello()
            {
                Console.WriteLine("我是戴尔笔记本");
            }
        }
    
        public class IBM:NoteBook
        {
            public override void SayHello()
            {
                Console.WriteLine("我是IBM笔记本");
            }
        }
    }
    
    

    4、值类型在复制的时候,传递的是这个值得本身。
    引用类型在复制的时候,传递的是对这个对象的引用。
    5、系列化:就是将对象转化为二进制;
    反系列化:就是将二进制转换为对象;
    作用:传输数据。

    展开全文
  • C++多继承多态的实现 如果一个类中存在虚函数,在声明类的对象时,编译器就会给该对象生成一个虚函数指针,该虚函数指针指向该类对应的虚函数表。 多态的实现是因为使用了一种动态绑定的机制,在编译期间不确定...
  • Python多态实例详解

    2021-03-06 01:18:44
    [Python]代码# coding:utf-8"""多态(英语:Polymorphism),是指面向对象程序运行时,相同的消息可能会送给多个不同的类之对象,而系统可依据对象所属类,引发对应类的方法,而有不同的行为。简单来说,所谓多态意指...

    [Python]代码

    # coding:utf-8

    """

    多态(英语:Polymorphism),是指面向对象程序运行时,相同的消息可能会送给多个不同的类之对象,

    而系统可依据对象所属类,引发对应类的方法,而有不同的行为。

    简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作称之。

    在面向对象程序设计中,多态一般指子类型多态(Subtype polymorphism)。

    上面的定义有点让初学者费解,黄哥用“打开”这个动作来描述面向对象的多态。

    "打开",可以是打开门,打开窗户,打开书等等。"打开"这个动作,碰到不同的对象门,窗户,书,有不同的行为模式。

    这个就是多态。

    本文由黄哥python培训,黄哥所写

    黄哥python远程视频培训班

    https://github.com/pythonpeixun/article/blob/master/index.md

    黄哥python培训试看视频播放地址

    https://github.com/pythonpeixun/article/blob/master/python_shiping.md

    """

    # 例1

    class Door(object):

    def open(self):

    print "打开门"

    class Windows(object):

    def open(self):

    print "打开窗户"

    class Book(object):

    def open(self):

    print "打开书"

    lst = [Door(), Windows(), Book()]

    for item in lst:

    item.open()

    # 例2 一般用继承来说明多态的例子

    class Animal:

    def __init__(self, name):

    self.name = name

    def talk(self):

    raise NotImplementedError("Subclass must implement abstract method")

    class Cat(Animal):

    def talk(self):

    return 'Meow!'

    class Dog(Animal):

    def talk(self):

    return 'Woof! Woof!'

    animals = [Cat('Missy'),

    Cat('Mr. Mistoffelees'),

    Dog('Lassie')]

    for animal in animals:

    print animal.name + ': ' + animal.talk()

    # 例3 python 内置有很多多态的应用

    # 同样的 +号 可以用在不同的对象相加,体现(相仿:指相加这个事情)了多态的功能。

    print 1 + 2

    print "hello" + '黄哥'

    # len 函数传不同的参数,也体现了多态的功能。

    print len("黄哥python培训")

    print len([2, 4, 5, 7])

    # 工程应用

    # 一个简单的日志记录函数,用判断实现的,重构为面向对象多态来实现。

    #如果有大量的判断语句,就可以用多态来实现。

    def log_msg(log_type):

    msg = 'Operation successful'

    if log_type == 'file':

    log_file.write(msg)

    elif log_type == 'database':

    cursor.execute('INSERT INTO log_table (MSG) VALUES ('?')', msg)

    #重构

    class FileLogger(object):

    def log(self, msg):

    log_file.write(msg)

    class DbLogger(object):

    def log(self, msg):

    cursor.execute('INSERT INTO log_table (MSG) VALUES ('?')', msg)

    def log_msg(obj):

    msg = 'Operation successful'

    obj.log(msg)

    展开全文
  • java 多态实例代码

    2020-08-28 09:04:15
    主要介绍了java 多态实例代码,具有一定借鉴价值,需要的朋友可以参考下
  • 本文实例讲述了javascript面向对象三大特征之多态。分享给大家供大家参考,具体如下: 多态 从某种意义上来说,多态是面向对象中重要的一部分,也是实施继承的主要目的。 一个实例可以拥有多个类型,它既可以是这种...
  • C#多态实例详解.docx

    2020-02-28 14:13:22
    ----C#多态实例详解---- 多态是面向对象编程中三大机制之一,其原理建立在"从父类继承而来的子类可以转换为其 父类"这个规则之上,换句话说,能用父类的地方,就能用该类的子类.当从父类派生了很多子 类时,由于每个子类...
  • VS2010 C# 多态实例

    2013-01-14 16:13:38
    VS2010 C# 多态实例 适合初选者
  • 精品专题课件(2021-2022年收藏)
  • java实现类的继承,接口,多态实例实用.pdf
  • 经典c/c++多态实例

    2011-06-13 17:28:04
    经典c/c++多态实例经典c/c++多态实例经典c/c++多态实例经典c/c++多态实例经典c/c++多态实例
  • C++多态实例

    2020-08-07 10:04:34
    动态多态实例 条件: 1、有父类和子类的继承关系 2、子类重写父类的函数 3、父类的引用作为指针常量被传入子类变量 用关键字virtual来修饰被重写的函数即可 代码如下: #include<iostream> #include<string...
  • 主要介绍了Python 面向对象之封装、继承、多态操作,结合实例形式分析了Python面相对象程序设计中封装、继承、多态相关操作技巧与使用注意事项,需要的朋友可以参考下
  • Java:简单的多态实例

    万次阅读 2018-08-07 23:47:21
    多态多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。 * 多态是出现在具有继承关系的两个类的...
  • 【多态】面向对象之多态实例 对象: 主人 行为:喂养宠物 宠物(父类) 行为:吃XXX 猫(子类) 行为:吃鱼 狗(子类) 行为:吃骨头 实例代码: 1.无多态实例代码 public class Master{ public void ...
  • 本资源完全免费,可以配合小菜鸡写的文章一起配合使用,想把一些不好理解的通俗易懂的解释出来,也希望在大学几年能锻炼自己,让自己的文章和代码被更多人使用,更多人喜欢,自己的理解也可以让大家一起讨论,一起...
  • C++ 多态 实例

    2012-03-02 14:49:43
    用c++写的多态实例,简单易懂,适合初学者,深刻理解多态的含义。
  • C++一个多态代码实例

    2021-10-23 12:23:31
    以下实现了一个典型的多态实例,该实例可以应用在软件开发中两个类的数据传输中。下面直接上代码: /* * Description: 一种使用纯虚类接口实现数据回调的方式 * Date: xxxx-xx-xx * **/ #include <...
  • C++ 多态实例

    千次阅读 2020-09-14 12:13:27
    这是我从书中摘录的觉得非常不错的实例。 1. 基本知识 1.1 多态的概念 简单理解为:同一个接口,多种实现方式。对不同类的对象发出相同的消息的时候,会产生不同的行为。 1.2 多态的作用 (1)应用程序可以不必...
  • Java中多态实例

    2022-02-22 19:55:19
    这是一个多态实例,模拟鼠标、键盘插入拔出,面向对象思想 一、实例步骤 1.创建接口 /* * USB接口==规范 * */ public interface USB { //拔出 插入 void connect(); void unconnect(); } 2.创建鼠标、键盘、...
  • 接口不能实例化,需要其他的类来实现它 * 4.一个类可以实现多个接口,以逗号分隔,还可以继承自其他类(单继承) */ public interface Fly { public void doFly(); } package fly; /** * 一个类实现了一个接口,他...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 198,541
精华内容 79,416
关键字:

多态实例