首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java--多态性之上溯造型和下溯造型

引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。...Java中方法的绑定都是动态绑定,除非一个方法被声明为final....下面这条语句成立也是因为动态绑定: Animal a = new Dog(); 下溯造型: 上溯造型会丢失具体的类型信息,所以为了获取具体的类型信息可以使用 “下溯造型”。...然而,上溯造型肯定 是安全的;基础类不可能再拥有一个比衍生类更大的接口。因此,我们通过基础类接口发送的每一条消息都 肯定能够接收到。但在进行下溯造型的时候并不一定安全。...} } 如上代码所示,衍生类上溯造型会丢失数据,但再下溯造型回来后这些数据还存在。

1.3K110

造型模式——工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。...适用场景: 类不知道自己要创建哪一个对象 类用它的子类来指定创建哪个对象 客户需要清楚创建了哪一个对象 **实现方式:**返回的也是一个抽象的产品,让其子类实现工厂接口; 优点: 一个调用者想创建一个对象...步骤 1 创建一个接口: Shape.java public interface Shape { void draw(); } 步骤 2 创建实现接口的实体类。...ShapeFactory.java public class ShapeFactory { //使用 getShape 方法获取形状类型的对象 public Shape getShape(String...FactoryPatternDemo.java public class FactoryPatternDemo { public static void main(String[] args) {

32120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java经典23种设计模式之创造型模式(一)

    值得一提的是,设计模式并不是Java所特有。由于一直搞Android。这里就用Java为载体。...本文记录创造型模式里的工厂方法(Factory Method)、抽象工厂(Abstract Factory)、单例模式这三种。力求透彻。...还是结合Java设计模式(疯狂Java联盟版)来介绍。 1、Product 即产品,是个接口,详细干啥没说。...2.当一个类希望由它的子类来指定它所创建的对象的时候。 3.当想将创建对象的职责托付给多个帮助类中的某一个。而且希望将哪一个帮助子类是代理者这一信息局部化的时候。...3.当你要强调一系列相关的产品对象的设计以便进行联合使用时* 4当你提供一个产品类库,而只想显示它们的接口而不是实现时。

    38610

    造型模式——抽象工厂模式

    这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。...一、介绍 概述:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 适用场景: 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量的重复代码...提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现 **实现方式:**在一个产品族里面,定义多个产品 **优点:**当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象...Shape.java public interface Shape { void draw(); } 步骤 2 创建实现接口的实体类。...Color.java public interface Color { void fill(); } 步骤 4 创建实现接口的实体类。

    19810

    造型模式——建造者模式

    建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。...一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。...一、介绍 概述:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示 适用场景: 需要生成的对象具有复杂的内部结构。 需要生成的对象内部属性本身相互依赖。...然后我们创建一个 Meal 类,带有 Item 的 ArrayList 和一个通过结合 Item 来创建不同类型的 Meal 对象的 MealBuilder。...Meal.java import java.util.ArrayList; import java.util.List; public class Meal { private List<Item

    20820

    Java|Java面向对象

    1 什么是面向对象 百度上解释面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。...面向过程就是我们需要实现一个功能的时候,我们需要实现功能的每一个步骤都需要自己来写,相对的面向对象则是,在java里我们需要实现一个功能,我们直接从JDK调用现成的类,比如在执行数组相关操作时,我们直接调用...这就是面向对象,这里就主要强调了一个会做饭洗碗的对象,即我们从执行者变成了指挥者,帮我们做事情的就叫对象。...2 类的定义以及与对象的关系 我们每用java写一个程序,都会定义一个类,java作为一门面向对象编程语言,那类与对象的关系会是什么呢。...我们先清楚什么是类和对象,类是一组相关属性和行为的集合,这个集合里可能就会存在某一事物的属性以及这一事物可以干什么事情,对象就是这个事物的具体表现,即类是抽象的,对象是具体的,类是对象的模板,对象是类的实体

    1.9K42

    Java——Java面向对象

    概述: Java是面向对象的程序设计语言,Java语言提供了定义类、成员变量、方法等最基本的功能。...类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,Java程序使用类的构造器来创建该类的对象。...对象和类: Java是面向对象的程序设计语言,类是面向对象的重要内容,可以把类当成一种自定义类型,可以使用类来定义变量,这种类型的变量统称为引用变量。也就是说,所有类是引用类型。...对象是由类创建出来的,可以说类时对象的抽象,对象是类的实例。 对象的概念: Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。...Java编程思想一书中有一段对面向对象的总结非常清晰到位,可谓是面向对象的精华所在: 1、万物皆对象 2、程序时对象的集合,它们通过发送消息来告知彼此所需要做的 3、每个对象都有自己的由其他对象所构成的存储

    2.2K21

    java引用变量和对象(java变量和对象)

    Java对象及其引用 先搞清楚什么是堆,什么是栈。...注意,栈内存储的除了基本类型的变量(int 这种类型的变量)还会存储对象的引用变量。java中,引用变量实际上是一个指针,它指向的是堆内存中对象实例。...后来才知道,在许多Java书中,把对象对象的引用混为一谈。可是,如果我分不清对象对象引用, 那实在没法很好地理解下面的面向对象技术。...2)末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,Java会给你补上一个默认的构造函数。...; 字符串对象“I am Java!”在打印后即被丢弃。有人把这种对象称之为临时对象

    2.1K40

    JAVA面向对象-类和对象

    目录 前言 1、什么是对象 1.1、事物和对象 1.2、对象的特征 1.3、对象的定义 2、什么是类 2.1、类的定义 2.2、举例一些类 2.3、类和对象的关系 3、类的组成 4、创建类及创建对象...java语言编程的特征,也是它好用的关键。...现实生活中是叫事物 编程中叫对象 1.2、对象的特征 对象有许许多多的特征 比如:你们的对象 1、静态特征(元素): 身高:,体重: --》属性名:属性值 2、动态特征(行为):会吃饭,睡觉,举高高...​ 哪些共有的行为 2.3、类和对象的关系 类是对象的抽象,对象是类的具体 类中有属性,方法 --》 对象有属性,具体的属性值 对象有方法,对应的执行 3、类的组成 类由对象抽象出来的属性和方法组成...; String 特殊可以直接赋值 而大部分对象只能使用第二中创建方式 //对象创建 Student zhangsan = new Studebt(); //引用对象成员:使用“.”进行以下操作 zhangsan.name

    99000

    Java对象and类?

    目录: Java类和对象的关系 Java对象和构造函数 一.Java类和对象之间的关系 Java对象和类,我们可以简单理解为对象是由属性和行为构成的,既然有属性也就会产生数据。...这里我们可以将类理解为用于描述一类对象的行为和状态,即把类可以看做一个模板,这个模板将会包括一些关于对象的行为或状态。 也就是说我们在Java程序中想要创建一个对象,必须得先有类,才会有对象。...Java对象与new关键字 new关键字表示创建一个对象; new关键字表示实例化对象; new关键字表示申请内存空间。...二.java对象和构造函数 上面说完Java中的对象和类,那么我们在创建完对象后对对象的初始化或者说给对象的属性赋值。...Java构造函数,也可以称之为构造方法,是Java中一种特殊的函数。即构造函数没有返回类型,且函数名和类名保持一致。 我们在类中new完对象后,其实也就调用了该对象的属性和方法。

    1K30
    领券