精华内容
下载资源
问答
  • 多态和继承

    2016-12-27 18:15:00
    继承  关键字:extends 多态  一种是重载,也就是静态多态  另一种是重写,也就是动态多态 静态多态:就是在出结果之前就已经知道会是什么样子 动态多态:就是在出结果之前不知道是什么样子,必须要运行...

    继承

      关键字:extends

    多态

      一种是重载,也就是静态多态

      另一种是重写,也就是动态多态

    静态多态:就是在出结果之前就已经知道会是什么样子

    动态多态:就是在出结果之前不知道是什么样子,必须要运行起来才能知道结果

    例子1:

    新建一个汽车的父类,用继承的修饰符定义变量,定义重载的构造函数(注:第二个构造函数中的this(mingCheng)是调用的上边那一个构造函数);

    然后定义父类的行为函数;之后再去定义子类的构造函数和重写父类已有的同名函数

    将父类和子类创建好之后,还需要一个司机来开,不然要车有啥用是吧,司机的行为方法需要调用父类的行为方法来变相的调用子类的行为方法,以实现多态效果

    司机创建如下:

    司机创建好之后就可以定义一个抽象的变量来调用具体的实例  来实现多态

    调用如下:

    之后只需要给父类不断地继承子类(也就是打补丁)就可以做到使司机驾驶各种各样的车型。

     

    转载于:https://www.cnblogs.com/dnf1612/p/6227003.html

    展开全文
  • 主要介绍了java中的多态和继承,结合实例形式分析了java中的多态和继承原理、实现方法及相关操作注意事项,需要的朋友可以参考下
  • 主要介绍了JavaScript实现多态和继承的封装操作,结合实例形式分析了javascript中多态与继承的实现及封装相关操作技巧,需要的朋友可以参考下
  • C++重点复习题(多态和继承).doc
  • Java 继承多态的深入理解1、 什么是继承继承的特点?子类继承父类的特征行为,使得子类具有父类的各种属性方法。或子类从父类继承方法,使得子类具有父类相同的行为。特点:在继承关系中,父类更通用、子类...

    Java 继承与多态的深入理解

    1、  什么是继承,继承的特点?

    子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。

    特点:在继承关系中,父类更通用、子类更具体。父类具有更一般的特征和行为,而子类除了具有父类的特征和行为,还具有一些自己特殊的特征和行为。

    在继承关系中。父类和子类需要满足is-a的关系。子类是父类。

    表示父类和子类的术语:父类和子类、超类和子类、基类和派生类,他们表示的是同一个意思。

    2、  为什么需要继承?什么时候应该继承?

    使用继承可以有效实现代码复用,避免重复代码的出现。

    当两个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其它两个类继承这个父类。

    继承实现了面向对象的原则:write once,only once(编写一次、且编写一次

    3、  如何实现继承?

    在Java语言中,用extends(扩展)关键字来表示一个类继承了另一个类。

    在父类中只定义一些通用的属性和方法。

    子类自动继承父类的属性和方法,子类中可以定义特定的属性和方法。或子类重新定义父类的属性、重写父类的方法可以获得与父类不同的功能。

    4、  什么是方法重写?

    如果在子类中定义的一个方法,其名称、返回类型及参数列表正好与父类中某个方法的名称、返回类型及参数列表相匹配,那么可以说,子类的方法重写了父类的方法。

    方法重写在不同类,是实现多态的必要条件。

    5、  super关键字的用法和位置,super关键字调用父类的构造方法,super关键字调用父类的方法?

    在子类的构造方法中,通过super关键字调用父类的构造方法。

    如果子类中重写了父类的方法,可以通过super关键字调用父类的方法。

    父类:

    private String name;

    private String sex;

    public xinxin1(String name,String sex)

    {

    this.name=name;

    this.sex=sex;

    }

    public void hello(){

    System.out.println(“嗨!我是”+name+”我是”+sex+”孩”);

    }

    子类:

    public xinxin2(String name,String sex)

    {

    //调用父类的构造方法

    super(name,sex);

    }

    public void hello(){

    System.out.println(“我是新来的!”);

    //调用父类的方法

    super.hello();

    }

    位置注意:调用父类的构造方法的语句(super语句)必须是构造方法中的第一条语句。

    因为创建对象的时候,需要先创建父类对象,再创建子类对象。

    注意:创建对象时,先创建父类对象,在创建子类对象。如果没有显示调用父类的构造方法,将自动调用父类的无参构造方法。

    6、  一切类的老大(祖先)Object。

    所有类都直接或者间接地继承了java.lang.Object类,Object类中定义了所有的java对象都具有的相同行为,是所有类的祖先。

    一个类如果没有使用extends关键字,那么这个类直接继承自Object类。

    7、  什么是多态?

    多态的特征是表现出多种形态,具有多种实现方式。或者多态是具有表现多种形态的能力的特征。或者同一个实现接口,使用不同的实例而执行不同的操作。

    8、  为什么需要使用多态?多态的好处?

    可以增强程序的可扩展性及可维护性,使代码更加简洁。

    不但能减少编码的工作量,也能大大提高程序的可维护性及可扩展性。

    9、  如何实现多态?

    一般做法是:写一个方法,它只接收父类作为参数,编写的代码只与父类打交道。调用这个方法时,实例化不同的子类对象(new 一个对象)。

    更具体的说:

    (1)、子类重写父类的方法。使子类具有不同的方法实现。

    (2)、把父类类型作为参数类型,该父类及其子类对象作为参数转入。

    (3)、运行时,根据实际创建的对象类型动态决定使用那个方法。

    在运行时,java虚拟机会根据实际创建的对象类型决定使用那个方法。一般将这称为动态绑定。

    10、多态小结:

    多态与继承、方法重写密切相关,我们在方法中接收父类类型作为参数,在方法实现中调用父类类型的各种方法。当把子类作为参数传递给这个方法时,java虚拟机会根据实际创建的对象类型,调用子类中相应的方法(存在方法重写时)。

    以上就是使用java继承与多态的讲解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    展开全文
  • java中的多态和继承,编译看左边,运行看右边 口诀: 成员变量,静态方法看左边(成员变量和静态方法编译和运行都看左边);非静态方法:编译看左边,运行看右边。 解释: 在多态中,向上转型和向下转型有很多的...

    java中的多态和继承,编译看左边,运行看右边

    口诀:

    成员变量,静态方法看左边(成员变量和静态方法编译和运行都看左边);非静态方法:编译看左边,运行看右边。

    解释:

    在多态中,向上转型和向下转型有很多的应用。
    1: 类型提升,向上转型
    Animal c = new Cat();
    在编译时:参阅引用型变量所属类中是否有调用的方法。如果有。编译通过,没有编译失败
    在运行时:参阅对象所属类中是否有调用方法。
    简单一句话:成员函数在多态时,编译看左边,运行看右边。
    2: 如果想要调用猫的特有方法,如何操作?
    强制将父类的引用,转成子类类型。向下转型

    Cat c = (Cat)a;
    c.catchMouse();
    

    3: 在多态中,调用子类函数,子类方法必须覆盖父类中的方法,如果调用子类特有的方法,就必须向下转型了。
    这样非静态的方法可直接调用。
    在多态中,成员变量的特点:
    无论编译和运行,都参考左边(引用型变量所属的类,)
    在多态中,静态成员函数的特点:
    无论编译和运行,都参考做左边。

    》》》博主长期更新学习心得,推荐点赞关注!!!
    》》》若有错误之处,请在评论区留言,谢谢!!!

    展开全文
  • 多态和继承的区别

    千次阅读 2015-11-09 06:35:02
    对象的区别 它们的关系是,对象是类的实例,类是对象的模板 ...重载,继承,重写和多态,泛型的区别: (1)重载是在一个类里一系列参数不同名字相同的方法。 (2)继承是子类获得父类的成员,使用父类的方
    1. 类和对象的区别
      它们的关系是,对象是类的实例,类是对象的模板

    2. 面向对象的四要素:

      封装(wrap)、继承(inheritance)、重载(override)还是多态(polymorphism),亦或是其他? 封装是优点,继承是基础,重载是特点,而多态则是特征。

    3. 重载,继承,重写和多态,泛型的区别:
      (1)重载是在一个类里一系列参数不同名字相同的方法。
      (2)继承是子类获得父类的成员,使用父类的方法。
      (3)重写是继承后重新实现父类的方法。
      (4)多态是具有表现多种形态的能力的特征,是为了避免在父类里大量重载引起代码臃肿且难于维护。继承是子类使用父类的方法,而多态则是父类使用子类的方法
      (5) 泛型就是指我们不为特定的类型进行专门编码,而采用对不同类型进行通用编码的方式,无论是数据结果还是算法,多态实际上就是泛型。

    下面的例子包含了这四种实现:
    
    class Triangle extends Shape {
    public int getSides() { //重写
        return 3;
        }
    }
    
    class Rectangle extends Shape {
    public int getSides(int i) { //重载
        return i;
        }
    }
    
    public class Shape {
    public boolean isSharp(){
        return true;
        }
    public int getSides(){
        return 0 ;
        }
    public int getSides(Triangle tri){
        return 3 ;
        }
    public int getSides(Rectangle rec){
        return 4 ;
        }
    }
    public static void main(String[] args) {
    Triangle tri = new Triangle(); //继承
    System.out.println("Triangle is a type of sharp? " + tri.isSharp());
    Shape shape = new Triangle(); //多态
    System.out.println("My shape has " + shape.getSides() + " sides.");
    }
    }
    
    注意Triangle类的方法是重写,而Rectangle类的方法是重载。
    比较就可以发现多态对重载的优点:如果用重载,则在父类里要对应每一个子类都重载一个取得边数的方法;如果用多态,则父类只提供取得边数的接口,至于取得哪个形状的边数,怎样取得,在子类里各自实现(重写)。
    展开全文
  • 相关资料: 视频:Java继承和多态 文章:面向对象的三大基本特征,五大基本原则
  • C语言模拟实现C++继承和多态 提示:C 实现一个 struct A stuct B 包含一个 int 成员 a b,要求达到B 继承 A 的效果,也就是 B里面包含一个 A,并且能达到多态的效果,也就是一个 A* p 指向一个指向A 调的是 A...
  • 1. class Fu{ void show() { System.out.println("Fu"); } } class Zi extends Fu{ void show() { System.out.println("Zi");...既然多态了,f指向Zi类,那么不可以去Zi类中找show()方法吗?
  • 但是在C++的学习中,其实我就一直不是很理解继承和多态继承类之间就反映了这样的关系:当一个类需要用到另外一个类的大部分方法属性,但又有自己特有的方法属性时,就可以使用继承这一特性。继承是从已知...
  • javascript中的封装多态和继承

    千次阅读 2015-04-08 09:54:45
    封装Encapsulation 如下代码,这就算是封装了 (function (windows, undefined) { var i = 0;//相对外部环境来说,这里的i就算是封装了 ...继承Inheritance (function (windows, undefined) { //父类
  • 在前面的文章中,我们介绍了编译期多态、params关键字、实例化、base关键字等。本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定。
  • 一道题跟java多态和继承相关

    千次阅读 2016-06-16 15:14:58
    2、一个类型的指针指向子类实例化对象时,先初始化父类属性,然后执行父类的构造方法,并调用tellName()printName()两个方法,此时要注意,由于多态特性,此时执行的实际上是子类的两个方法,而此时子类还没有实例...
  • (对面向对象语言中理解多态继承很有帮助~~~) 在多态中,成员变量的特点: 无论编译运行,都参考左边(引用型变量所属的类) 在多态中,静态成员函数的特点:无论编译运行,都参考做左边。 在多态中,非...
  • 七:Java之封装、抽象、多态和继承

    千次阅读 2014-06-28 15:22:57
    本文章介绍了关于Java中的面向对象封装、抽象、继承多态特点 Java面向对象主要有四大特性:封装、抽象、继承和多态
  • (1) 定义“动物”类,此类中有动物的属性有3个:1、名称变量,2、腿的数量变量,3、动物的数量。...(2) 定义“鱼类”,是“动物类”的子类,要求基于父类的属性方法,在该类中实现方法完成:1、设置鱼...
  • 1、多态 同一个方法在不同的类中最终呈现出不同的效果,即为多态。 class Triangle: def __init__(self,width,height): self.width = width self.height = height def getArea(self): area=self.width* ...
  • java面向对象四大特性:继承,封装,多态,抽象
  • 1.父类中的private方法是不能被子类覆盖...2.面向对象的三个特征:封装,继承多态。 3.Java中除了static方法final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定(即动态绑定)。  JAV
  • 在本节,我们分别用代码片段来阐述各自类型的多态类型:函数重载、早期绑定、编译器的多态。 先创建一个console 工程,并命名为 InheritanceAndPolymorphism,然后添加类 Overload.cs ,再添加 DisplayOverload 函数...
  • 1 首先看一个多态的Demo: class Fu{ int num1 = 10; public Fu(){ } public void show1(){ System.out.println("num1 is " + num1); } }class Zi extends Fu{ int num1 = 11; int num2 = 2
  • C++多态继承详解

    2014-06-03 21:00:52
    C++多态与继承详解PPT资源,图文并茂,详细讲解多态和继承
  • 使用基类变量引用子类对象,或使用接口变量引用实现了此接口的对象。这其实就是多态编程。 多态编程的基本原理是:使用基类或接口变量编程。...因此,多态的实现分为两大基本类别:继承多态和接口多态。
  • 关于Java中多态机制这篇博文讲的很透彻大体意思是多态定义:多态就是指程序中定义的引用变量所指向的具体类型通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向...
  • 在自身学习中发现多态和继承结合出现的一些小问题,是从书本概念上很难理解到的,结合这道例题特别在代码中注释记录下最初的疑问和解决思路
  • c#实例简单理解多态继承和接口

    千次阅读 2020-04-04 21:54:49
    通过实际案例讲解c#中多态继承以及接口的理解及使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,776
精华内容 15,910
关键字:

多态和继承