精华内容
下载资源
问答
  • java作为面向对象的语言,同样可以描述一个事物的多种形态,java多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口) 变量赋值。...

    一、多态的概念

    多态是继封装,继承之后,面向对象的三大特性。

    现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的张三同学既是学生也是人,即出现两种形态。

    java作为面向对象的语言,同样可以描述一个事物的多种形态,java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口) 变量赋值。

    父类的引用变量指向子类对象。多态的前提需要有继承关系或者是实现关系,否则没法完成多态。在使用多态后的父类引用变量调用方法时,会调用子类重写的;

    二、多态的定义与使用

    多态的定义格式:就是父类的引用变量指向子类的对象;

    父类类型变量名 = new 子类对象();

    变量名.方法名();

    1.普通类的多态定义格式:

    父类类型变量名 = new 子类();

    2.抽象类多态的定义:

    抽象类变量名 =new 抽象类子类();

    3.接口多态定义的格式:

    接口变量名 =new 接口实现类();

    注意:虽然变量指向子类的对象,但表现的是一个父类的形态,可以调用一切父类的方法,子类特有的方法将不能调用

    三、多态调用的注意事项:

    编译:成员变量,成员方法都需要看父类;父类没有编译报错;

    运行:成员变量运行父类的成员变量,成员方法运行父类重写的方法

    四、多态的好处与弊端

    好处:多态配合继承子类重写,提高了代码的复用性与扩展性

    弊端:不能调用子类特有的方法

    五、向上向下类型转换

    多态本身是子类类型向父类类型向上转型的过程;

    1.向上转型:

    当子类的对象赋值给一个父类的引用时,便是向上转型,多态本身就是向上转型的过程

    使用格式:父类类型 变量名= new 子类类型();

    2.向下转型:

    一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类的引用转换为子类引用,这个过程是向下转型。直接创建父类对象的无法使用向下转型;

    使用格式:

    子类类型 变量名= (子类类型) 父类类型的变量;

    六、instanceof 关键字

    可以通过instanceof关键字来判断某个对象是否属于某种数据类型;

    使用格式:

    boolean b= 对象(new ) instanceof 数据类型;

    展开全文
  • 1、Java 多态继承使我们可以从另一个类继承属性和方法。多态使用这些方法来执行不同的任务。这使我们能够以不同的方式执行单个方法。1)引用的多态父类的引用可以指向本类的对象,父类的引用可以指向子类的对象。注意...

    1、Java 多态

    继承使我们可以从另一个类继承属性和方法。多态使用这些方法来执行不同的任务。这使我们能够以不同的方式执行单个方法。

    1)引用的多态

    父类的引用可以指向本类的对象,父类的引用可以指向子类的对象。

    注意:子类的对象不可以指向父类的对象

    2)方法的多态

    创建本类对象时,调用的方法为本类的方法。创建子类对象时,调用的方法为子类重写的方法或者继承的方法。

    注意:父类的引用调用的方法不能是子类独有的方法,必须是从父类继承的方法或重写父类的方法。

    2、多态中的引用类型转换

    1)向上类型转换(隐式/自动类型转换),是小类型到大类型的转换。不存在风险。

    2)向下类型转换(强制类型转换),是大类型向小类型转换。有风险。

    3)instanceof运算符,来解决引用对象的类型,避免类型转换的安全问题。(animal instanceof Cat)

    3、多态实例代码

    多态的体现是父类的引用指向了自己的子类对象,父类的引用也可以接收自己的对象。实现多态的前提是必须是类与类之间只有关系,要么继承或实现。通常还有一个前提,存在覆盖。多态的好处是多态的出现大大的提高了程序的扩展性。

    例如:public class Main{

    public static void main(String[] args){

    Animal myAnimal = new Animal(); // 创建 Animal 对象

    Animal myCat = new Cat(); // 创建 Cat 对象

    Animal myDog = new Dog(); // 创建 Dog 对象

    myAnimal.eat();

    myCat.eat();

    myDog.eat();

    }

    }

    class Animal{

    public void eat(){

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

    }

    }

    class Cat extends Animal{

    public void eat(){

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

    }

    public void catchMouse(){

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

    }

    }

    class Dog extends Animal{

    public void eat(){

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

    }

    public void kanJia(){

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

    }

    }

    “继承”和“多态性”对于代码可重用性很有用:创建新类时,重用现有类的属性和方法。

    展开全文
  • java作为面向对象的语言,同样可以形容一个事物的多种形态,java多态的代码表现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口) 变量赋值。...

    一、多态的概念

    多态是继封装,继承之后,面向对象的三大特性。

    现实事物经常会表现出多种形态,如学生,学生是人的一种,则一个具体的张三同学既是学生也是人,即出现两种形态。

    java作为面向对象的语言,同样可以形容一个事物的多种形态,java中多态的代码表现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口) 变量赋值。

    父类的引用变量指向子类对象。多态的前提需要有继承关系或者者是实现关系,否则没法完成多态。在使用多态后的父类引用变量调用方法时,会调用子类重写的;

    二、多态的定义与使用

    多态的定义格式:就是父类的引用变量指向子类的对象;

    父类类型变量名 = new 子类对象();

    变量名.方法名();

    1.普通类的多态定义格式:

    父类类型变量名 = new 子类();

    5a238ff88cad95641645f14d618830f3.png

    2.笼统类多态的定义:

    笼统类变量名 =new 笼统类子类();

    b6b7a32882874d130f9bdfcd9615bfc8.png

    3.接口多态定义的格式:

    接口变量名 =new 接口实现类();

    c094a03a819de326b5c2513d4acf6e54.png

    注意:尽管变量指向子类的对象,但体现的是一个父类的形态,可以调用一切父类的方法,子类特有的方法将不能调用

    三、多态调用的注意事项:

    编译:成员变量,成员方法都需要看父类;父类没有编译报错;

    运行:成员变量运行父类的成员变量,成员方法运行父类重写的方法

    四、多态的好处与弊端

    好处:多态配合继承子类重写,提高了代码的复用性与扩展性

    弊端:不能调用子类特有的方法

    五、向上向下类型转换

    多态本身是子类类型向父类类型向上转型的过程;

    1.向上转型:

    当子类的对象赋值给一个父类的引用时,便是向上转型,多态本身就是向上转型的过程

    使用格式:父类类型 变量名= new 子类类型();

    2.向下转型:

    一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类的引用转换为子类引用,这个过程是向下转型。直接创立父类对象的无法使用向下转型;

    使用格式:

    子类类型 变量名= (子类类型) 父类类型的变量;

    六、instanceof 关键字

    可以通过instanceof关键字来判断某个对象能否属于某种数据类型;

    使用格式:

    boolean b= 对象(new ) instanceof 数据类型;

    ?为了让学习变得轻松、高效,今天给大家免费分享一套Java教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

    展开全文
  • java多态-对象多态

    2019-02-12 10:09:55
    对象多态(动态绑定、动态连接):  package com.leoworld.polymorphism; /* 多态的成员访问特点: A:成员变量 编译看左边,运行看左边。 B:成员方法 编译看左边,运行看右边。 为什么呢? ...

    对象多态(动态绑定、动态连接): 

    package com.leoworld.polymorphism;
    
    /*
    	多态的成员访问特点:
    		A:成员变量
    			编译看左边,运行看左边。
    		B:成员方法
    			编译看左边,运行看右边。
    			为什么呢?
    				因为成员方法有重写,而变量没有。
    		C:静态方法
    			编译看左边,运行看左边。
    			静态方法其实没有重写这一说。因为它是跟类相关。
    	   D:成员方法内调用成员变量
    	        编译看左边,运行看右边。成员方法内使用右边的成员变量。
    */
    
    
    class Animal {
        public int age = 40;
    
    
        public void show() {
            System.out.println("show animal");
            age++;
            System.out.println("show animal age:"+age);
        }
    
        public static void method() {
            System.out.println("method animal");
        }
    }
    
    class Dog extends Animal {
        public int age = 20;
    
        public void show() {
            System.out.println("show dog");
            age++;
            System.out.println(" show dog age :"+age);
        }
    
        public static void method() {
            System.out.println("method dog");
        }
    }
    
    class DuoTaiDemo2 {
        public static void main(String[] args) {
            //多态
            Animal a = new Dog();
            System.out.println(a.age);
            //System.out.println(a.num);
            a.show();
    
            a.method();
        }
    }
    

    运行结果:

    40
    show dog
     show dog age :21
    method animal

     

    展开全文
  • 理解的要点:多态意味着父亲的变量可以指向子类对象面向对象程序设计的三大支柱是封装、继承和多态封装对外把相应的属性和方法实现的细节进行了隐藏。继承关系使一个子类继承父亲的特征,并且加上了一些新的特征。...
  • java多态_java多态

    2021-02-12 09:20:29
    1.多态的概述:是面向对象的三大特性之...②Java多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。普通类与普通类,抽象...
  • Java多态简介在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征。堕胎的作用是消除类型之间的耦合关系。多态简介多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据...
  • java面向对象多态特性

    2019-02-17 21:00:32
    java作为面向对象的语言,同样可以描述一个事物的多种形态,java多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口) 变量赋值。...
  • java对象多态详解总结 多态概念: ​ 一个事物,在不同时刻呈现不同的状态。 多态前提: 类之间存在继承关系 类方法拥有重写 父类引用指向子类对象(向上转型) 向上转型格式: 父类名 对象名=new 子类名(); ...
  • java多态1. 多态的概述: 是面向对象的三大特性之一, 封装, ...又有哺乳动物的属性.2Java多态的代码体现在一个子类对象 (实现类对象) 既可以给这个子类 (实现类对象) 引用变量赋值, 又可以给这个子类 (实现类...
  • 一、什么是多态一个父类的引用类型变量它既可以指向父类对象也可以指向子类对象,它可以根据当前时刻指向的不同,自动调用不同对象的方法,这就是多态。如果 学了C语言的指针,我觉得多态还是比较好理解的,就好比...
  • java函数多态_Java 多态

    2021-03-06 16:53:55
    Java多态,在之前的向上转型的文章中已经介绍了使用场景和为什么要通过向上转型实现运行时多态,请先看文章:张舰:Java 向上转型和向下转型这篇文章主要是总结一下Java多态的概念,具体的例子请参考向上转型那篇...
  • 多态时面向对象三大特征:封装、继承、多态。 在继承关系,是一种”is A”的关系,也就说子类是父类的一种特殊情况,有如下代码: public class Animal{} public class Dog extends Animal{} public class Cat ...
  • 数据抽象、继承和多态是面向对象程序设计语言的三大特性。多态,我觉得它的作用就是用来将接口和实现分离开,改善代码的组织结构,增强代码的可读性。在某些很简单的情况下,或许我们不使用多态也能开发出满足我们...
  • 多态存在要有3个必要条件:继承、方法重写、父类引用指向子类对象。3.父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。案例代码:package com.jackfujia.oo2;/*** 测试多态* @author ...
  • 前两天已经相继介绍了Java面向对象的三大特性之中的封装、继承,所以今天就介绍Java面向对象的三大特性的最后一项,多态~首先讲一下什么是多态,以及多态需要注意的细节 什么是多态:一个对象具备多种形态,也可以...
  • 下面要给大家分享的是几个比较经典也很简单的java多态例题,感兴趣的小伙伴可以一起来通过下面的文章了解一下,对于java面试还是很有帮助的呢。1、多态分类多态分成了2种,一个是编译时多态,另外一个是运行时多态。...
  • 面向对象四大特征:继承、封装、抽象、多态 多态:一种办法拥有多种实现形式,具体的实现方式与具体对象有关,类的继承中的重载、覆盖便是多态的体现。多态的必要条件:继承、重写、父类引用指向子类对象 重载:同名...
  • java面向对象三大特征:封装,继承,多态多态的定义:1、实现关系下的多态,接口的引用类型变量指向了接口实现类的对象2、继承关系下的多态,父类的引用类型变量指向了子类的对象继承关系下的多态:我们定义一个动物...
  • 本文为学习笔记 能力有限 如有错误望指正。谢谢!!!对象转型:一个基类的引用可以指向其子类的...对象转型对象转型的便利之处:对象转型中父类引用可以指向子类对象对象转型f函数的目的就是输出猫狗对象的名字和...
  • Java 多态一、多态定义多态就是指对象的多种形态。木木将从两个方面为同学们介绍多态。一个是引用的多态;一个是方法的多态。1、引用多态当我们在写面向对象程序的时候,一般父类的引用可以指向本类的对象。Animala...
  • 多态是继封装、继承之后,面向对象的第三大特性。现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三...Java多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引...
  • java —— 多态

    2021-01-26 16:25:03
    文章目录java —— 多态一、概要二、多态其他知识点(一)多态的好处和弊端(二)多态的转型END 一、概要 多态的概述:同一个对象,在不同时刻表现出来的不同形态; 即类类型的变量由于派生关系,可以引用各种类...
  • java 多态之_java多态

    2021-03-10 08:27:28
    1.多态概述1.多态是继封装、继承以后,面向对象的第三大...Java做为面向对象的语言,一样能够描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。3 前提条件:必须...
  • Java中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息...
  • Java面向对象 多态的好处

    千次阅读 2019-04-19 13:18:48
    多态的好处,建议参考一个百度回答: https://zhidao.baidu.com/question/217864684.html?hideOtherAnswer=true&newAnswer=1 例如一段代码: class Computer { public void turnOn() { } } class PC ...
  • Java多态

    2021-03-02 09:27:42
    Java多态 同一个行为具有多个形态或表现的能力 在Java中,多态就是同一个接口,使用不同的实例而执行不同操作。 多态存在的条件 1.继承 2.重写 3.父类引用指向子类对象 多态的好处 1.消除类型之间的耦合关系 2.可...
  • 多态 java_java.多态

    2021-03-05 14:26:31
    概述多态是继封装、继承之后,面向对象的第三大特性生活中,比如跑的动作,猫、狗和大象,跑起来是不一样的。再比如飞行的动作,昆虫、鸟和飞机,飞起来也是不一样的。可见,同一类行为,通过不同的事物,可以体现...
  • 前两天已经相继介绍了Java面向对象的三大特性之中的封装、继承,所以今天就介绍Java面向对象的三大特性的最后一项,多态~ 首先讲一下什么是多态,以及多态需要注意的细节 什么是多态:一个对象具备多种形态,也可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,451
精华内容 11,380
关键字:

java对象多态

java 订阅