精华内容
下载资源
问答
  • java中的多态什么

    2021-03-09 06:47:05
    java中的多态什么发布时间:2020-06-28 09:59:19来源:亿速云阅读:119作者:Leahjava中的多态什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更...

    java中的多态是指什么

    发布时间:2020-06-28 09:59:19

    来源:亿速云

    阅读:119

    作者:Leah

    java中的多态是指什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

    多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

    477e575a8985dc0ccc718a363b48ad22.png

    多态性是对象多种表现形式的体现。现实中,比如我们按下 F1 键这个动作:

    ·如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;

    ·如果当前在 Word 下弹出的就是 Word 帮助;

    ·在 Windows 下弹出的就是 Windows 帮助和支持。

    同一个事件发生在不同的对象上会产生不同的结果。

    多态的优点

    ·1. 消除类型之间的耦合关系

    ·2. 可替换性

    ·3. 可扩充性

    ·4. 接口性

    ·5. 灵活性

    ·6. 简化性

    多态存在的三个必要条件

    ·继承

    ·重写

    ·父类引用指向子类对象

    比如:Parent p = new Child();

    当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

    多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

    以下是一个多态实例的演示,详细说明请看注释:

    Test.java 文件代码:public class Test {

    public static void main(String[] args) {

    show(new Cat()); // 以 Cat 对象调用 show 方法

    show(new Dog()); // 以 Dog 对象调用 show 方法

    Animal a = new Cat(); // 向上转型

    a.eat(); // 调用的是 Cat 的 eat

    Cat c = (Cat)a; // 向下转型

    c.work(); // 调用的是 Cat 的 work

    }

    public static void show(Animal a) {

    a.eat();

    // 类型判断

    if (a instanceof Cat) { // 猫做的事情

    Cat c = (Cat)a;

    c.work();

    } else if (a instanceof Dog) { // 狗做的事情

    Dog c = (Dog)a;

    c.work();

    }

    }

    }

    abstract class Animal {

    abstract void eat();

    }

    class Cat extends Animal {

    public void eat() {

    System.out.println("吃鱼");

    }

    public void work() {

    System.out.println("抓老鼠");

    }

    }

    class Dog extends Animal {

    public void eat() {

    System.out.println("吃骨头");

    }

    public void work() {

    System.out.println("看家");

    }

    }

    执行以上程序,输出结果为:吃鱼

    抓老鼠

    吃骨头

    看家

    吃鱼

    抓老鼠

    关于java中的多态是指什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

    展开全文
  • 【填空题】(general)______ speaking, table manners vary from culture to culture.【单选题】The next board meeting will focus __ the benefits for the employees.【单选题】Mike has already put forward his ...

    【填空题】(general)______ speaking, table manners vary from culture to culture.

    【单选题】The next board meeting will focus __ the benefits for the employees.

    【单选题】Mike has already put forward his suggestion ___ a production plan should be completed next week.

    【填空题】建立图表时,需要选择不连续数据区域,应该按( )键进行选择

    【单选题】More than 100 people died ____ the earthquake in that area.

    【单选题】Breakfast can be __ to you in your room for an additional charge.

    【填空题】The money (borrow)__ from the bank has already been paid back.

    【单选题】哪个图更容易看出各项占了总数多少 比例 ?

    【单选题】The report gives a __ picture of the company's future development.

    【单选题】We have to pay them a large __ of money for their service.

    【单选题】Please __ of us of your decision and we will act according to it.

    【填空题】The wallpaper pattern (design) ____ by a famous Chinese artist several years ago.

    【单选题】The quality control staff is responsible __ the quality of the products that come out of the factory.

    【简答题】在中国传世文献中,第一部纪传体断代史是 _________ ;第一部编年体断代史是 ___________ 。

    【单选题】By the end of this year, they ____ a new program.

    【单选题】Please __ your report carefully before you hand it to me.

    【单选题】In recent years, there have been over 30 foreign companies ____ business in this city.

    【单选题】The company makes it possible __ the market information with its partners.

    【单选题】We __ building the bridge by the end of next month.

    【单选题】I agree to the idea __ our staff should use recycled paper to save money.

    【单选题】在ps中,打开标尺的快捷键是( )

    【简答题】修改图表类型的操作方法是?

    【单选题】I'd appreciate it if you could tell me how ___ the machine.

    【简答题】你认为饥饿营销在什么样的情况下是有效的?如何更好利用这种方式进行营销?

    【单选题】哪个图形更易判断于基于时间的变化 趋势 ?

    【填空题】The organization will start a (move)____ to protect the environment next month.

    【单选题】在ps软件中,图像最大可以被放大( )

    【单选题】We have to got to __ a new way to solve this problem.

    【填空题】They have already discussed the report (give)____ by the department manager.

    【简答题】图像分辨率的含义?

    【判断题】除了通过功能区的命令,没有别的地方可以打开修改类型的对话框。

    【简答题】图表建立的操作方法?

    【填空题】We look forward to (meet)__ you and wish you every success in your career.

    【单选题】It has been unusually cold this winter and experts say it's not ___.

    【简答题】柱形图、折线和饼图对数据的各自表现特长是什么?

    【填空题】南宋史学家袁枢的代表作是 _________________ ,它的问世标志着 _________________________ 的创立。

    【填空题】To start your own business is usually (cheap)____ than to buy one.

    【单选题】哪个图形更易于数据的对比 ?

    【单选题】It is easy to get the software we need ___ the market is small.

    【填空题】After the lecture yesterday, they (realize)__ how important company culture was.

    【单选题】___ the members cooperate well, the exam will keep winning games.

    【单选题】Language learning is a slow process, which _____ alot of effort, time and patience.

    【单选题】在计算机中,构成位图的基本单位是( )

    【填空题】We will set up a factory in that country, which is rich in (nature)____ resources.

    【填空题】The program aims to let all the employees (understand)_____ the culture of the company.

    【单选题】The company has been producing this model of machine tool __ 2008.

    【判断题】创建图表时,不可以先选择“插入”——“图表”,再选择图表数据。

    【单选题】在PS图像处理中,快速实现抓手工具的快捷键是( )

    【填空题】The (manage) __ said that their wouldn'd be responsible for the loss of the goods.

    【其它】见习分组你还满意吗?

    展开全文
  • Python中的多态是什么

    2021-02-03 13:00:33
    多态的概念其实不难理解,它是对不同类型的变量进行相同的操作,它会根据对象(或类)类型的不同而表现出不同的行为。事实上,我们经常用到多态的性质,比如:>>>1 23>>>'a' 'b''ab'可以看到,...

    多态的概念其实不难理解,它是指对不同类型的变量进行相同的操作,它会根据对象(或类)类型的不同而表现出不同的行为。

    abbde61c8b675a2a208384ead5539ad1.png

    事实上,我们经常用到多态的性质,比如:>>> 1   2

    3

    >>> 'a'   'b'

    'ab'

    可以看到,我们对两个整数进行   操作,会返回它们的和,对两个字符进行相同的   操作,会返回拼接后的字符串。也就是说,不同类型的对象对同一消息会作出不同的响应。

    相关推荐:《Python视频教程》

    再看看类的例子:class Animal(object):

    def __init__(self, name):

    self.name = name

    def greet(self):

    print 'Hello, I am %s.' % self.name

    class Dog(Animal):

    def greet(self):

    print 'WangWang.., I am %s.' % self.name

    class Cat(Animal):

    def greet(self):

    print 'MiaoMiao.., I am %s' % self.name

    def hello(animal):

    animal.greet()

    看看多态的使用:>>> dog = Dog('dog')

    >>> hello(dog)

    WangWang.., I am dog.

    >>>>>> cat = Cat('cat')

    >>> hello(cat)

    MiaoMiao.., I am cat

    可以看到,cat 和 dog 是两个不同的对象,对它们调用 greet 方法,它们会自动调用实际类型的 greet 方法,作出不同的响应。这就是多态的魅力。

    相关推荐:

    Python中类的继承是什么

    您可能感兴趣的文章:

    展开全文
  • 多态 OOP 能够根据使用类的上下文来重新定义或改变类的性质或行为,或者说接口的多种不同的实现方式即为多态。把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的...

    OOP的封装是为了隐藏对象的字段和实现细节,仅对外公开接口,控制在程序中字段的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成 “ 类 ” ,其中数据和函数都是类的成员。

    字段的作用域

    1. public 公共的(类外可以访问 )

    2. private 私有的(类内可以访问 )

    3. protected 受保护的(类内和子类可以访问,类外不可访问 )

    方法前面如果没有修饰符,那么默认是外部可访问的公共方法,但为了让程序更加的清晰,建议在前面加上 public 。

    类内访问静态属性(使用static声明),使用类名::$字段名(两个冒号)或者self::$字段名(推荐,更改类名时内部代码无需更改)来实现。

    类内访问非静态属性,在类内访问字段使用关键字$this->字段名来实现,字段名前面没有$符号。

    属性操作(字段的赋值与取值):可以设计两个公共方法,一个方法为setName(),用于赋值;一个方法为getName(),用于取值。

    class Computer {

    private $_name ;

    function setName($_name){$this ->_name = $_name ;}// 赋值

    function getName() {return $this ->_name;}// 取值

    }

    $computer = new Computer();

    $computer ->setName( 'Name' );

    echo $computer ->getName();

    常量(constant):在类中可以定义常量,用来表示不会改变的值。对于从该类实例化的任何对象来说,常量前面不需要作用域修饰符 ,常量值在这些对象的整个生命周期中都保持不变。

    class Computer {const PI = 3.1415926;}

    echo Computer::PI; //类名::常量名就可以调用,不需要实例化

    静态类成员:有时候,可能需要创建供所有类实例共享的字段和方法,这些字段和方法与所有的类实例有关,但不能由任何特定对象调用。静态类是保存在数据区的数据,并不与各个实例对象有关,在一个实例对象中改变了一个静态字段或方法的值,那么以后所有该类的实例化对象调用该静态字段或方法的时候都是改变以后的。

    class Computer {public static $_count = 0 ;}

    echo Computer:: $_count ;//类名::静态变量名就可以调用,不需要实例化,一般来说,必须将字段做成私有化。

    静态类成员在类内调用需要使用self或static关键字,关键字::字段或方法名,字段名前面需要加$符号

    class A{

    public static $name="A_name';

    public static function run_self(){ echo self::$name; }

    public static function run_static(){ echo static::$name; }

    }

    class B extends A { public static $name="B_name'; }

    B::run_self(); //返回A_name

    B::run_static(); //返回B_name

    在继承时如果发生重写,如果在父类中使用写法slef::字段返回父类未重写之前的值,而写法static::字段返回重写之后的值。

    Instanceof关键字(操作符):判断一个对象是否是一个类的实例(在php中如果一个对象是某个类的实例,那么也会认为该对象是这个类的父类的实例),或者是否实现了某个特定接口,并进行相应的操作。

    class Computer {

    }

    $computer = new Computer();

    echo($computer instanceof Computer);

    多态是指 OOP 能够根据使用类的上下文来重新定义或改变类的性质或行为,或者说接口的多种不同的实现方式即为多态。把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

    interface Computer { //创建一个接口来规范运行的方法

    public function version();

    public function work();

    }

    class NotebookComputer implements Computer {

    public function version() {echo '笔记本';}

    public function work() {echo '可以便携运行!';}

    }

    class DesktopComputer implements Computer {

    public function version() {echo '台式机';}

    public function work() {echo '不能便携运行';}

    }

    class Person {

    public function run( $type ) {

    $type ->version();

    $type ->work();

    }

    }

    $person = new Person();

    $desktopcomputer = new DesktopComputer();

    $notebookcomputer = new NoteBookComputer();

    $person ->run( $notebookcomputer );

    最后编辑:2019-06-10作者:qingheluo

    5aea90233e4bbc88135a027c2de2596a.png

    这个作者貌似有点懒,什么都没有留下。

    展开全文
  • 多态 ##动态编译:类型:可扩展性 即同一方法可以根据发送对象的不同而采取多种不同的行为方式 一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多 多态存在的条件:有继承关系、子类重写父类方法、...
  • 一、多态多态一类事物有多种形态,比如动物类,可以有猫,狗,猪等等。(一个抽象类有多个子类,因而多态的概念依赖于继承)import abcclass Animal(metaclass=abc.ABCMeta):#同一类事物:动物@abc....
  • 五、继承与多态

    2021-03-30 13:44:29
    就得到了该对象的一个上转型对象 多态性就是父类的某个实例方法被其子类重写时,可以各种产生自己的功能行为 多态的必要条件: 继承 重写 向上转型 向上转型是自动进行的,向下转型要强制 包 为什么需要包?...
  • Java动态多态原理

    2021-02-27 13:02:57
    多态分为几种:多态分为静态多态、动态多态什么是静态多态静态多态性的是程序在编译时,系统就能决定调用哪个函数,一般的是重载,是在一个类中的行为。重载,就是在类中创建多个方法,它们具有相同的名字,但...
  • 多态继承、封装、多态、抽象是面向对象编程的四大基本特征。封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提条件下,改变类的内部结构,同时保护了数据...多态一词最早出现在生物学,是生物学的一个基...
  • 认识多态 多态在一个特定类型的变量可以引用不同类型的对象,并且能自动的调用应用的对象的方法。 2.向上转型 子类向父类的转换称为向上转型。 语法格式: =new(); 规则: (1)将一个父类的引用指向一个子类...
  • 多态是什么

    2021-01-17 12:23:54
    多态(Polymorphism)按字面的意思就是“多bai种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等...
  • 浅谈-----多态

    2021-05-29 09:40:38
    多态一次的通常含义是能够呈现出多种不同的形式或形态。而在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且能自动的调用引用的对象的方法,也就是根据作用到的不同对象类型,影响不同...
  • 多态的体现是父类引用变量可以指向子类对象,在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法;多态的前提条件是有子父类关系或者类实现接口的关系。
  • 首先,多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。另外,多态是出现在具有继承关系的两个类的...
  • 展开全部什么是多态1.面向对象的三大特性:封装、继承...2.多态的定义:允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调...
  • java多态机制是什么

    2021-02-12 11:01:30
    java多态机制是什么java中实现多态的机制是依靠...概念多态就是一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时...
  • 什么是多态

    千次阅读 2021-02-09 16:11:26
    多态不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。多态成立的另一个条件是在创建子类时候必须使用父类new子类的方式。 多态(Polymorphism)按字面的...
  • 多态性是的面向对象程序设计代码重用的一个重要的机制,对于Java多态性,应该都不是第一次才听到的。很大一部分的java程序员会把多态看作对象的一种能力,使其能调用正确的一个方法版本。虽然说是这样的,可是这种...
  • 面向对象11.1 面向对象的三大特征11.2 封装11.3 继承11.3.1 单一继承11.3.2 多重继承11.4 多态11.5 设计模式11.5.1 工厂模式11.5.2...它是将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这
  • Python多态

    2021-01-19 00:05:13
    其他语言中所谓多态的是一个方法多种实现,在继承前提下,父类规定了子类的接口,使得可以相同的方式调用子类的方法,但会获得不同的功能。 Python崇尚的是“鸭子类型”(Duck typing),这个概念的名字来源于由...
  • 初识 多态

    2021-05-31 00:23:02
    多态一次的通常含义是能够呈现出多种不同的形式或形态。而在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且能够自动的调动引用的对象的方法,也就是根据作用到的不同对象类型,相应...
  • 多态的定义允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术动态绑定(dynamic binding),是在执行期间判断所引用对象的...
  • 在Java中,多态不同类的对象在调用同一个方法时所呈现出的多种不同行为。通常来说,在一个类中定义的属性和方法被其他类继承或重写后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法...
  • java 多态是什么?

    2020-12-22 17:10:27
    多态是同一个行为具有多个不同表现形式或形态的能力。 多态的优点 消除类型之间的耦合关系:在使用重载方式,来对同方法名不同参数类型,来达到不同结果,进而消除了一定耦合关系 可替换性:在使用重写方式,完全...
  • 所谓多态就是程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个...
  • 其中编译时多态是静态的,主要是方法的重载,它是根据参数列表的不同来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家...
  • 接触Java这么久,我们一定都知道,作为面向对象阵营的典型代表,封装、继承、多态 (其实还应该包含抽象)是其三大基本特征 但是到底什么是多态,它的底层又是如何实现的,又有什么优缺点,可能就没那么容易说清楚 ...
  • 面向对象的三大特征:封装、继承、多态。在前面已经说了过了封装和继承。今天就来聊聊剩下的多态多态,从字面内容来看,就是多种形态,多种状态。在java的面向对象中可以从以下两个方面来讲。01不同子类之间的多态...
  • 多态复习

    2021-03-14 23:04:42
    Java复习系列文章目录 第一章 多态 ...多态就是程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实
  • 多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的...“polymorphism(多态)”一词来自希腊语,意为“多种形式”。多数Java程序员把多态看作对象的一种能力,使其能调用正确的方法版本。尽管如此,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,688
精华内容 44,675
关键字:

多态是指