m0_58766370
2021-05-29 18:33
采纳率: 100%
浏览 28

如何理解面向对象多态

面向对象三大特征,继承,封装,多态,如何理解多态呢,大二学子

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • CSDN专家-张老师 2021-05-29 18:34
    已采纳
    1. 多态是指,子类可以替换父类
    2. 保持子类的开放性和灵活性,可以重写父类中的方法
    3. 实现面向接口编程
    已采纳该答案
    1 打赏 评论
  • CSDN专家-张老师 2021-05-29 18:35
    class Animal {
        public name: string;
        protected age: number;
        private weight: number;
        constructor(name: string, age: number, weight: number) {
            this.name = name;
            this.age = age;
            this.weight = weight;
        }
        speak() {
            throw new Error('此方法必须由子类实现!');
        }
    }
    class Person extends Animal {
        private money: number;
        constructor(name: string, age: number, weight: number, money: number) {
            super(name, age, weight);
            this.money = money;
        }
        getName() {
            console.log(this.name);
        }
        getAge() {
            console.log(this.age);
        }
        getMoney() {
            console.log(this.money);
        }
        speak() {
            console.log('你好!');
        }
    
    }
    class Dog extends Animal {
        constructor(name: string, age: number, weight: number) {
            super(name, age, weight);
        }
        speak() {
            console.log('汪汪汪!');
        }
    }
    let p = new Person('fullstack', 10, 10, 10);
    p.speak();
    let d = new Dog('fullstack', 10, 10);
    d.speak();
    打赏 评论
  • CSDN专家-sinjack 2021-05-29 18:37

     

     

    多态的概念

           多态性是指允许不同类的对象对同一消息作出响应,多态性包括参数化多态性和包含多态性,多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

    前提:

    (1)要有继承关系
    (2)子类要重写父类的方法
    (3)父类的引用指向子类的对象(向上转型:子类自动转换为父类)

    实质:父类引用指向子类对象

     

    2.多态的使用

    格式:

    父类名称 对象名 = new 子类名称();

    或者

     接口名称 对象名 = new 实现类名称();

     

    打赏 评论
  • 有问必答小助手 2021-05-31 15:06

    您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

    ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

    【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
    【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632

    打赏 评论

相关推荐 更多相似问题