抽象方法

Java接口

我的梦境 提交于 2019-11-26 14:12:54
我认为,接口就是继承 1.接口要被interface修饰,即在原来的类的格式中删除class换成interface public interface Weapon { } 2.接口里的方法默认为抽象方法 默认格式为public abstract void baoda() ;-------即为抽象方法 abstract可以被省略 public void baoda() ; 3.//implements为对应接口的关键词 //可以多接口(多实现) public abstract class Hero implements Weapon,kuijia { } 4.//public void kangzou(); //接口的父类会有一个默认的抽象方法,从接口里来 可以省略 public void kangzou(); 5.因为父类默认继承了一个接口里来的抽象方法,所以接下来继承父类的子类必须将这个接口中的(父类中的)抽象方法实现 public void kangzou() { // TODO Auto-generated method stub System.out.println("这是接口里传来的抽象方法的实现"); } 8.有抽象方法的类没有办法直接new(创建对象)----需要由子类来继承(父类)或实现(接口)后创建对象`。 9.抽象类可以作为父类被继承,接口可以被多实现 10

结构型模式(三) 组合模式(Composite Pattern)

五迷三道 提交于 2019-11-26 12:56:24
动机(Motivate) 客户代码过多地依赖于对象容器(对象容器是对象的容器,细细评味)复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等方面的弊端。如何将“客户代码与复杂的对象容器结构”解耦?如何让对象容器自己来实现自身的复杂结构,从而使得客户代码就像处理简单对象一样来处理复杂的对象容器? 意图(Intent) 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 —— 《设计模式》GoF 结构图(Structure) 模式的组成 组合模式中涉及到三个角色: (1)、抽象构件角色(Component) :这是一个抽象角色,它给参加组合的对象定义出了公共的接口及默认行为,可以用来管理所有的子对象(在透明式的组合模式是这样的)。在安全式的组合模式里,构件角色并不定义出管理子对象的方法,这一定义由树枝结构对象给出。 (2)、树叶构件角色(Leaf) :树叶对象是没有下级子对象的对象,定义出参加组合的原始对象的行为。(原始对象的行为可以理解为没有容器对象管理子对象的方法,或者 【原始对象行为】+【管理子对象的行为(Add,Remove等)】=面对客户代码的接口行为集合) (3)、树枝构件角色(Composite) :代表参加组合的有下级子对象的对象

Python抽象类和接口类

不打扰是莪最后的温柔 提交于 2019-11-26 11:53:17
zxq547 python定义接口继承类invalid syntax解决办法 1 2 3 4 5 6 7 class s_all(metaclass = abc.ABCMeta): #python2.7用此方法定义接口继承 # __metaclass__ = abc.ABCMeta @abc .abstractmethod def read( self ): pass pyhton2.7会报错,此方法用于python3+pyhton2.7应用次方法定义 1 2 3 4 5 6 7 class s_all(): #python2.7用此方法定义接口继承 __metaclass__ = abc.ABCMeta @abc .abstractmethod def read( self ): pass Python之抽象类、抽象方法 抽象类中只能有抽象方法,子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。 Python2 class CopyBase(object): def save(self): raise NotImplementedError class CopyPaper(CopyBase): def __init__(self): pass def save(self): print("copy paper") class CopyQuestion

简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别

别等时光非礼了梦想. 提交于 2019-11-26 11:50:48
转载:原地址http://www.cnblogs.com/zhangchenliang/p/3700820.html 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别 结合简单示例和UML图,讲解工厂模式简单原理。 一、引子 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!”。 你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的! 幸运的是这种有病的现象在OO语言中可以避免了。下面以Java语言为基础来引入我们本文的主题:工厂模式! 二、简介 工厂模式主要是为创建对象提供了接口。工厂模式按照《Java与模式》中的提法分为三类: 1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。两者皆可,这本为使用《Java与模式》的分类方法。 在什么样的情况下我们应该记得使用工厂模式呢

Java 继承

穿精又带淫゛_ 提交于 2019-11-26 06:30:30
目录 Java 继承 1. 概述 2. 继承的格式 3. 继承中成员变量的访问特点 4. 区分子类方法中重名的三种变量 5. 继承中成员方法的访问特点 6. 继承中方法的覆盖重写 7. 继承中构造方法的访问特点 8. super关键字的三种用法 9. this关键字的三种用法 10. super和this关键字图解 11. Java继承的三个特点 12. Java 抽象类 抽象方法和抽象类的格式 抽象类和抽象方法的使用 注意事项 13. 发红包综合案例 Java 继承 1. 概述 面向对象三大特征:封装性,继承性,多态性。 继承是多态的前提,没有继承既没有多态。 继承好比师父和徒弟的关系。 继承主要解决的问题是: 共性抽取 继承当中的特点: 子类可以拥有父类的“内容”。 子类还可以拥有自己专有的内容。 2. 继承的格式 在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当作父类看待。例如:父类是员工,子类是讲师,那么“讲师就是一个员工”。 关系:is-a 定义父类的格式和定义一个普通的类没有区别 定义子类的格式: public class 子类名称 extends 父类名称{ // ... } 3. 继承中成员变量的访问特点 在父子类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式: 直接通过子类对象访问成员变量: 等号左边是谁,就优先用谁,没有则向上找。

Java 接口

家住魔仙堡 提交于 2019-11-26 06:26:11
目录 Java 接口 1. 接口的定义基本格式 2.接口的抽象方法定义 3. 接口的使用步骤 4. 接口的默认方法的定义 5. 接口的默认方法使用 6. 接口的静态方法定义 7. 接口的静态方法使用 8. 接口的私有方法定义 9. 接口的常量定义和使用 10. 接口的内容小结 11. 使用接口的注意事项: 12. 接口与接口之间的多继承关系 Java 接口 接口就是一种 公共的规范标准 ,只要符合规范标准,就可以大家通用。 接口就是多个类的公共规范。 接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。 1. 接口的定义基本格式 格式: public interface 接口名称(){ 接口内容 } 备注: 换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class。 如果是Java 7,那么接口中可以包含的内容有: 常量 抽象方法 如果是Java 8,还可以额外包含有: 默认方法 静态方法 如果是Java 9, 还可以额外包含有: 私有方法 2.接口的抽象方法定义 在任何版本的Java中,接口都能定义抽象方法。 格式: public abstract 返回值类型 方法名称(参数列表); 注意事项: 接口当中的抽象方法,修饰符必须是两个固定的关键字:public abstract。 这两个关键字修饰符,可以选择性省略。 方法的三要素

JAVA 抽象

微笑、不失礼 提交于 2019-11-26 05:22:43
抽象 抽象的概述   abstract 用于修饰方法和类   抽象方法:没有具体方法体的方法,且只能在抽象类中   抽象类:有抽象方法的类必须是抽象类   一个类继承了抽象类那么必须重写他所有的抽象方法,否则这个类就必须是抽象类 抽象类的特点   抽象方法只能在抽象类里面   抽象类和抽象方法必须被 abstract 修饰   抽象类不能创建对象(不能实例化)   抽象类中可以有非抽象的方法 抽象类的成员特点   可以有成员变量和成员常量   可以有抽象方法和非抽象方法    来源: https://www.cnblogs.com/viperqy/p/11316362.html

设计模式之抽象工厂模式

孤人 提交于 2019-11-25 21:07:39
抽象工厂模式(Abstract Factory),是23种设计模式之一。DP中是这么定义抽象工厂模式的: 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。 在学习抽象工厂模式之前,最好熟悉简单工厂模式以及工厂方法模式,这样对理解抽象工厂模式会有一定帮助,而且抽象工厂也是基于工厂方法模式的。 至于工厂是用来干什么的,我这里也不过多介绍了,因为之前在工厂方法模式里已经说过了,如果对工厂的概念不是太清楚的话,可以参考我之前的文章: https://blog.51cto.com/zero01/2067822 在这里我们暂时先不谈论抽象工厂是什么,因为如果直接上来就去描述、解释什么是抽象工厂,以及如何使用抽象工厂模式来设计代码,这样是无法很好的明白抽象工厂模式的概念以及它所带来的好处或坏处的,只会让人下意识的只去记住实现代码,而不是设计模式的思想。讲解其他模式也是一样,如果一上来就是代码+理论一顿灌,只会让人看得亿脸懵逼或似懂非懂。这就好比给你一块披萨告诉你很好吃,以及这块披萨上用了哪些好食材,你只管吃就可以了,那么如果你没有吃过难吃的披萨,可能就会以为披萨就应该是这个味道的。 所以我们先从有些糟糕的代码入手,并且分析这些代码哪些地方有问题,然后再演进成使用设计模式去重构代码,这样就能有一个明显的对比