精华内容
下载资源
问答
  • 多态的概念

    2018-08-13 14:06:00
    多态的概念 //多态:一个引用(类型)在不同情况下的多种状态 //多态:是指通过父类的指针,来调用在不同子类中实现的方法 public class多态 { public static void main(String[] args) { //...

    多态的概念

    //多态:一个引用(类型)在不同情况下的多种状态
    
    //多态:是指通过父类的指针,来调用在不同子类中实现的方法
    
     
    
    public class多态 {
    
        public static void main(String[] args) {
    
            //里氏替换原则
    
            //父类的引用类型实例化子类对象
    
    //        Animal1 s=new Cat1();
    
    //        s.cry();
    
    //        s=new Dog1();
    
    //        s.cry();
    
            Master master=new Master();
    
            master.feed(new Dog1(), new Bone());
    
        }
    
    }
    
    //主人类
    
    class Master{
    
        //给动物喂食物,使用多态,用一个方法就可以(不管有多少个动物)
    
        public void feed(Animal1 an,Food f){
    
            an.eat();
    
            f.showName();
    
        }
    
    }
    
    //动物类
    
    class Animal1{
    
        String name;
    
        int age;
    
        //自动生成:右键>>source>>找到get和set
    
        public String getName() {
    
            return name;
    
        }
    
        public void setName(String name) {
    
            this.name = name;
    
        }
    
        public int getAge() {
    
            return age;
    
        }
    
        public void setAge(int age) {
    
            this.age = age;
    
        }
    
        public void cry(){
    
            System.out.println("动物叫声");
    
        }
    
        public void eat(){
    
        }
    
    }
    
    class Cat1 extends Animal1{
    
        public void cry(){
    
            System.out.println("猫叫声");
    
        }
    
        public void eat(){
    
            System.out.println("猫吃鱼");
    
        }
    
    }
    
    class Dog1 extends Animal1{
    
        public void cry(){
    
            System.out.println("狗叫声");
    
        }    
    
        public void eat(){
    
            System.out.println("狗吃骨头");
    
        }
    
    }
    
    //食物类
    
    class Food{
    
        String name;
    
        public void showName(){    
    
        }
    
    }
    
    class Fish extends Food{
    
        public void showName(){
    
            System.out.println("鱼");
    
        }
    
    }
    
    class Bone extends Food{
    
        public void showName(){
    
            System.out.println("骨头");
    
        }
    
    }

     

    转载于:https://www.cnblogs.com/xdzy/p/9467724.html

    展开全文
  • 多态的概念多态==晚绑定。不要把函数重载理解为多态。因为多态是一种运行期的行为,不是编译期的行为。多态:父类型的引用可以指向子类型的对象。比如 Parent p = newChild();当使用多态方式调用方法时,首先检查...

    多态的概念

    多态==晚绑定。

    不要把函数重载理解为多态。

    因为多态是一种运行期的行为,不是编译期的行为。

    多态:父类型的引用可以指向子类型的对象。

    比如 Parent p = new

    Child();

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

    如果有,再去调用子类的该同名方法。

    (注意此处,静态static方法属于特殊情况,静态方法只能继承,不能重写Override,如果子类中定义了同名同形式的静态方法,它对父类方法只起到隐藏的作用。调用的时候用谁的引用,则调用谁的版本。)

    如果想要调用子类中有而父类中没有的方法,需要进行强制类型转换,如上面的例子中,将p转换为子类Child类型的引用。

    因为当用父类的引用指向子类的对象,用父类引用调用方法时,找不到父类中不存在的方法。这时候需要进行向下的类型转换,将父类引用转换为子类引用。

    结合实例说明

    下面举个例子(有问题的代码已注释):

    主要讲讲两种类型转换和两种编译时候的错误。

    多态示例代码

    public class

    PolyTest

    {

    public static void main(String[]

    args)

    {

    //向上类型转换

    Cat cat =

    new Cat();

    Animal

    animal = cat;

    animal.sing();

    //向下类型转换

    Animal a =

    new Cat();

    Cat c =

    (Cat)a;

    c.sing();

    c.eat();

    //编译错误

    //用父类引用调用父类不存在的方法

    //Animal

    a1 = new Cat();

    //a1.eat();

    //编译错误

    //向下类型转换时只能转向指向的对象类型

    //Animal

    a2 = new Cat();

    //Cat c2 =

    (Dog)a2;

    }

    }

    class

    Animal

    {

    public void sing()

    {

    System.out.println("Animal is singing!");

    }

    }

    class Dog

    extends Animal

    {

    public void sing()

    {

    System.out.println("Dog is singing!");

    }

    }

    class Cat

    extends Animal

    {

    public void sing()

    {

    System.out.println("Cat is singing!");

    }

    public void eat()

    {

    System.out.println("Cat is eating!");

    }

    }

    例子的执行结果:

    a4c26d1e5885305701be709a3d33442f.png

    这段代码:

    a4c26d1e5885305701be709a3d33442f.png

    Cat类中定义了eat()方法,但是Animal类中没有这个方法,a1引用是Animal类的,所以找不到,编译时出错:

    a4c26d1e5885305701be709a3d33442f.png

    两种类型的类型转换

    (1)向上类型转换(Upcast):将子类型转换为父类型。

    对于向上的类型转换,不需要显示指定,即不需要加上前面的小括号和父类类型名。

    a4c26d1e5885305701be709a3d33442f.png

    (2)向下类型转换(Downcast):将父类型转换为子类型。

    对于向下的类型转换,必须要显式指定,即必须要使用强制类型转换。

    a4c26d1e5885305701be709a3d33442f.png

    并且父类型的引用必须指向子类的对象,即指向谁才能转换成谁。

    不然也会编译出错:

    a4c26d1e5885305701be709a3d33442f.png

    a4c26d1e5885305701be709a3d33442f.png

    因为父类引用指向的是Cat类的对象,而要强制转换成Dog类,这是不可能的。

    展开全文
  • java中多态的概念.pptx

    2020-06-11 01:15:38
    多态的概念;绑定的概念;多态与后期绑定;Java中的多态| 举例;为什么要多态;方法的型构 型构就是指方法的组成结构具体包括方法的名称和参数涵盖参数的数量类型以及出现的顺序但是不包括方法的返回值类型访问权限修饰符...
  • java多态的概念

    2021-03-09 17:52:50
    java多态的概念 对于多态,可以总结它为: 一、使用父类类型的引用指向子类的对象; 二、该引用只能调用父类中定义的方法和变量; 三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类...

    java多态的概念

    对于多态,可以总结它为:

    • 一、使用父类类型的引用指向子类的对象;
    • 二、该引用只能调用父类中定义的方法和变量;
    • 三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
    • 四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
    展开全文
  • 主要介绍了用实例解释Python中的继承和多态的概念,继承和多台是学习每一门面对对象的编程语言时都必须掌握的重要知识,需要的朋友可以参考下
  • 很多人表示,自己对于多态的概念不是很清楚,那么下面就让我们一起来详细的了解一下吧。1、什么是多态?多态简单的来说就是一种事物的多种存在形态。在面向对象语言当中,接口的多种不同的实现方式就被叫做多态。...

    对于java中的多态你是怎样理解的呢?很多人表示,自己对于多态的概念不是很清楚,那么下面就让我们一起来详细的了解一下吧。

    1、什么是多态?

    多态简单的来说就是一种事物的多种存在形态。

    在面向对象语言当中,接口的多种不同的实现方式就被叫做多态。

    多态还是很容易理解的吧。

    延伸阅读

    2、java中多态的使用场景介绍

    方法的重写和重载、子类对象的多态性;

    使用前提-有类的继承、由子类对父类方法的重写;使用方式-通过父类的引用指向子类的对象;public class Person

    {

    public void eat()

    {

    System.out.println("人吃饭");

    }

    }

    class Man extends Person

    {

    public void eat()

    {

    System.out.println("男人吃饭");

    }

    }

    //子类对象的多态性使用前提:1.要有类的继承 2.要有子类对父类方法的重写

    public class Test

    {

    public static void main(String[] args)

    {

    //子类对象的多态性:父类的引用指向子类对象

    Person p = new Man(); //向上转型

    //虚拟方法调用:通过父类的引用指向子类对象的实体,调用方法时,实际执行子类重写父类的方法

    p.eat();

    }

    }

    子类对象的多态性,并不适用于属性。public class Person

    {

    int id = 101;

    public void eat()

    {

    System.out.println("人吃饭");

    }

    }

    class Man extends Person

    {

    int id = 102;

    public void eat()

    {

    System.out.println("男人吃饭");

    }

    }

    public class Test

    {

    public static void main(String[] args)

    {

    Person p = new Man();

    p.eat();

    System.out.println(p.id); //输出的是Person对象的id属性

    }

    }

    执行结果

    73c2ce9f8a855279c4653e0083d6de0d.png

    多态也是经常会出现的知识点,希望大家都可以掌握好,更多java基础知识,请继续关注奇Q工具网来进行了解。

    推荐阅读:

    展开全文
  • 文章目录1 C++中多态的概念和意义1.1 函数重写回顾1.2 多态的概念1.3 多态的意义1.4 静态联编和动态联编 1 C++中多态的概念和意义 1.1 函数重写回顾 对于函数重写: 父类被重写的函数依然会继承给子类。 子类中重写...
  • 多态的概念和意义

    2018-01-17 21:35:52
    面向对象中的多态的概念 根据实际的对象类型决定函数调用的具体目标 同样的调用语句在实际运行时有多种不同的表现形态 C++语言直接支持多态的概念 通过使用virtual关键字对多态进行支持 被virtual声明的函数被重写...
  • 【C/C++】多态的概念

    千次阅读 2015-08-29 19:39:11
    多态的概念
  • 多态的概念、定义以及实现

    千次阅读 2019-09-26 19:51:38
    多态的概念 1. 多态 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状态。 2.举个栗子 比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价...
  • 理解java多态的概念和作用
  • 多态的概念和意义 面向对象中期望的行为: 根据实际的对象类型判断如何调用重写函数 父类指针(引用)指向 父类对象则调用父类中定义的函数 子类对象则调用子类中定义的重写函数 面向对象中的多态的概念 根据...
  • 用实例解释Python中的继承和多态的概念来源:中文源码网浏览: 次日期:2018年9月2日【下载文档:用实例解释Python中的继承和多态的概念.txt】(友情提示:右键点上行txt文档名->目标另存为)用实例解释Python中的...
  • 【含答案】第四章 接口与多态--4.3-多态的概念 (1)单选题 import java.io.*; class Person{ public void print(){System.out.print("Person ");} } class Employee extends Person{ public void print(){...
  • 49-多态的概念和意义

    2018-06-12 15:59:00
    多态的概念和意义 面向对象中期望的行为: 1、根据实际的对象类型判断如何调用重写函数 2、父类指针(引用)指向:(1)父类对象则调用父类中定义的函数(2)子类对象则调用子类中定义的重写函数 面向对象中...
  • 因为多态是一种运行期行为,不是编译期行为。多态:父类型引用可以指向子类型对象。比如 Parent p = new Child();当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再...
  • 1、函数重写回顾 父类中被重写的函数依然会继承给子类 子类中重写的函数将覆盖父类中的函数 通过作用域分辨符(::)可以访问到父类中的函数 Child c; Parent* p = &...2、多态的概念和...
  • 1.多态的概念: 1.1概念: 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生不同的状态 举个栗子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价...
  • 1.多态的定义指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)2.多态的作用消除类型之间的耦合关系3.多态的说明近代网络小说泛滥,我们可以...
  • 视频地址: Java之多态的概念及三大特点 更多精彩内容,敬请扫码关注(HelloWorld小码农):  
  • 继承和多态多态的概念 灵活的程序专注于多态而不是继承 。 一些语言专注于静态类型检查(C ++,Java,C#),它们将概念联系在一起并减少了多态机会 。 分离概念的语言可以使您专注于多态并创建更强大的代码。 ...
  • 多态性使得能够利用同一类(基类)类型的指针来引用不同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作.c++中多态更容易理解的概念为允许父类指针或名称来引用子类对象,或对象方法,而实际调用的...
  • c/c++ 多态的概念

    2015-03-02 10:36:52
    预备知识: c++赋值兼容原则: ... 多态的概念:  1:先期联编:能够在编译时就能够确定哪个重载的成员函数被调用的情况  2:后期联编(多态性):系统在运行时,能够根据其参数类型确定调用哪个重

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,770
精华内容 5,508
关键字:

多态的概念