java_抽象类应用】的更多相关文章

本例子通过一个实例来具体阐述抽象类的应用,首先一个抽象类Person2,里面定义了一些人的共有属性(年龄,姓名),和抽象方法want(),want()方法来具体实现不同的人的需求(学生想要成绩,工人想要工资).接下来student类和worker类继承Person类,并且实现自己想要的want(),但是人的共有属性(年龄,姓名)就不要再次实现了,这样就大大减少了代码量. 还要记住不要去继承一个已经实现好的抽象类. package com.test; abstract class Person2{…
抽象类1,语法定义抽象类前使用abstract关键字修饰,则该类为抽象类2.应用场景(1)在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法. (2)从多个具有相同特征的类抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性 3.作用 限制规定子类必须实现某些方法,但不关注实现细节 (主要目的:不关注子类的实现.但是要约束子类必须要有哪些子类) 4.适用方法(使用规则) (1)abstract定义抽象类 (2)abstract定义抽…
抽象类 抽象类:包含抽象方法的类. 抽象方法 : 没有方法体的方法. 使用 abstract关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体. 格式为:修饰符 abstract 返回值类型 方法名 (参数列表): 抽象类的使用 继承抽象类的子类必须重写父类所有的抽象方法.否则,该子类也必须声明为抽象类.最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,没有意义. public class Demo1 { public static v…
1.抽象类: 1.抽象类之所以被称为抽象类,就是因为它包含有抽象方法,只要含有抽象方法的类就叫抽象类. 2.抽象类中可以没有抽象方法,也可以抽象方法和非抽象方法共存. 3.抽象类和类一样是单继承的. 4.抽象类中可以存在普通的成员变量. 5.在Java中,我们通过abstract来定义抽象类: //…
1. 接口只能定义抽象方法,不包含已经提供实现的方法. 抽象类可以包含普通方法 2. 接口不能定义静态方法.抽象类可以定义静态方法 3. 接口里只能定义静态常量filed,不能定义普通filed. 抽象类可以定义普通field,也可以定义静态filed. 4. 接口里面不包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用构造器来完成抽象类的初始化操作. 5. 接口里面不包含初始化块,但抽象类可以包含 6. 一个类最多只能有一个直接父类,包含抽象类.一个类可以实…
接口: 接口,英文interface,在java中,泛指供别人调用的方法或函数.接口是对行为的一种抽象. 语法: [public] interface InterfaceName{} 注意: 1)接口中的变量会被隐式(只能)定义为 public static final: 2)接口中的方法会被隐式(只能)定义为 public abstract: 3)接口中的所有方法都不能有具体实现(只能是抽象方法): 4)接口不能实例化(因为接口中的方法都是抽象的,没有方法体): 5)一个类可以实现多个接口(用…
1.接口 java中接口的存在意义是:让多个继承该接口的类实现多态,让多个类有相同的特征 示例代码: interface MyInterface{ void myMethod(); } class Test1 implements MyInterface{ @Override public void myMethod() { // TODO 自动生成的方法存根 System.out.println("test1"); } } class Test implements MyInterf…
PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成.OOP 达到了软件工程的三个主要目标:重用性.灵活性和扩展性.为了实现整体运算,每个对象都能够接收信息.处理数据和向其它对象发送信息. 1.PHP中的抽象类 PHP 5 支持抽象类和抽象方法.定义为抽象的类不能被实例化.任何一个类,如果它里面至少…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习! 涉及到的知识点总结如下: 为什么使用接口? 接口和抽象类的区别 简单工厂模式总结 Java中new和newInstance的区别 Java的Class.forName(xxx); Java里创建对象的几个方式总结 Java类加载机制总结 Java WEB的三层架构和MVC的关系 工厂方法模式总结 抽象工厂模式总结 一道面试题的分析 一个服务提供者框架的学习 接口的另一常用法:策略模式 参考资料 先看这样一个场景:某个果园里现在有…
引言 接口和抽象类是面向对象编程(OOP, Object Oriented programming)中两个绕不开的概念,二者相似而又有所不同.接下来,我们来了解二者的概念并比较它们的异同. 什么是抽象类? 抽象类是一种特殊的类,该类不能被实例化.抽象类的存在就是为了被继承,即抽象类可以被其它类继承但不能被实例化.那么,我们为什么需要一个无法被实例化的类呢?这样做的优点是,通过抽象类我们制定了一份强制所有子类必须遵守的合约,使所有子类有着一致的层次结构.抽象类提供了一种规范用于规定子类如何进行工作…
面向对象设计过程中重要的一点是如何进行抽象,即把"问题空间"中的元素与"方案空间"中的元素建立理想的一对一的映射关系.抽象类和接口便是抽象过程中的产物.     一.抽象类 我们知道,对象是通过类来产生的,但是并非所有的类都可以描述具体的对象. 如果一个类中不包含足够的信息来描述具体的对象,就成为了抽象类.抽象类是对一类有着相同特征,但细节上却有着不同表现的对象的抽象.比如,鸟类都会叫,但是不同的鸟叫法肯定是不同的,可以抽象出"叫"这个概念. 定…
一.继承(extends) 什么是继承? 继承是对现实生活中的"分类"概念的一种模拟. 狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是"继承"关系的重要特性:通常简称为"IS_A"关系,UML类图可以这么表示: 继承的语法 class 子类名 extends 父类名 { -- } 注意:     父类(parent class)和超类(super class):通常指直接上级: 基类(base class):通常指包括直接上级在…
php里面的接口类,抽象类到底有什么用呢? 刚接触php的时候,觉得这个东西没什么用,其实这些东西还是有一定的作用的,下面我就简单的说说. 1.php 接口类:interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 interface Shop { public function buy($…
抽象类:抽象类不能实例化,类中的方法必须经过子类的重写实现 类里的方法是public修饰时,子类可重写也可不重写 类的方法是abstract修饰时,方法是抽象方法,子类必须重写该方法 类的方法用final修饰时,方法为终态的,该方法只能在子类集成的时候被调用实例化 子类: 结果: 一般类: 结果:…
1.一个类可以实现多个接口 ,但却只能继承最多一个抽象类. 2.抽象类可以包含具体的方法 , 接口的所有方法都是抽象的. 3.抽象类可以声明和使用字段 ,接口则不能,但接口可以创建静态的final常量. 4.接口的方法都是public的,抽象类的方法可以是public,protected,private或者默认的package: 5.抽象类可以定义构造函数,接口却不能.…
原文地址: http://www.cnblogs.com/dolphin0520/p/3811437.html 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.…
经常看到这样的问题,就是问这两个的区别,我这也总结一下: 1,宏观上说,一个是类,一个是接口,类只支持单一继承,接口支持多个继承 2,微观上说,就是从内部来说 a,成员变量方面 接口可以包含方法,属性,常量(不变的,但是不想一直从数据库中取导致浪费资源的量) 抽象类可以包括接口包括的任何成员,同时需要满足的是内部可以有实现的方法和没有实现的方法,同时必须有没有实现的方法 b,接口类是公开的,抽象类可以不是公开的 c,一般使用,接口是在顶部,然后抽象类实现接口,然后对象类来实现抽象类 d,实现接口…
1.程序设计原则:SOLIP SOLIP设计原则 1.单一责任原则(SRP) 一个对象对只应该为一个元素负责 2.开放封闭原则(OCP) 对扩展开放,修改封闭 3.里氏替换原则(LSP) 可以使用任何派生类替换基类 4.接口分离原则(ISP) 对于接口进行分类避免一个接口的方法过多 5.依赖倒置原则(DIP) 隔离关系,使用接口或抽象类代指 6.依赖注入(DI)和控制反转原则(ICO) 使用钩子再原来执行流程中注入其他对象 接口: # ==============================…
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是 Java 语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予 Java 强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类.比如 new A…
其实对抽象类与接口的区别一直是搞不太清楚,最近正在学习<设计模式>,期间用到了很多c++多态的知识.这是才恍然发现,是应该整理下这方面的知识了.但在翻阅书本.上网查阅资料之际,发现有篇文章总结的不错.于是,转载(博主勿怪)并稍作修改如下: 抽象类:抽象类是特殊的类,只是不能被实例化(将定义了一个或多个纯虚函数的类称为抽象类):除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的,但同时也能包括普通的方法.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们…
为了访问公有派生类的特定成员,可以通过讲基类指针显示转换为派生类指针. 也可以将基类的非静态成员函数定义为虚函数(在函数前加上virtual) #include<iostream> using namespace std; class base{ public: /*virtual*/ void who(){ //define this function to virtual will be normal cout << "this is the class of bas…
C#中的抽象类与接口有些相似,初学者很容易混淆,今天就让我来谈谈对二者的理解. 首先我们得明确二者的含义,分述如下: 如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类(abstract class),它既可以提供抽象方法,也可以提供非抽象方法.抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,也不能被密封.如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类.另外,实现抽象方法由overri…
最近发现很多基础有点生疏了,特地写一点博客来巩固一下.今天主要来谈谈接口和抽象类的区别,我们在项目的很多地方都会用到接口或者抽象类,但是它们之间的一些区别和相同点不知道大家有没有注意到,还有就是,什么时候用抽象类,什么时候用接口比较好呢,今天,就好好的总结一下. 抽象类: 1:有abstract修饰的class,绝对就是抽象类. 2:抽象类中可以有抽象方法,也可以没有抽象方法,但是有抽象方法的class,就一定会是抽象类. 3:抽象类是不能创建实例对象的. 4:如果有子类继承这个抽象类,则必须要…
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.…
abstract 修饰符用于表示所修饰的类是不完整的,并且它只能用作基类.抽象类与非抽象类在以下方面是不同的: 抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误.虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的). 允许(但不要求)抽象类包含抽象成员. 抽象类不能被密封. 当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员.在下面的示例中 ab…
什么是抽象类: 当你在定义一个父级的类的时候,往往在父级内的方法没有添加任何内容,这时候如果你在子类里面调用父级的时候,万一在子类之中类名或者方法名没有写正确,会出现不执行的情况,但是这种情况默认是不报错的,此时如果将父级定义为抽象类的时候,子类必须有父类的内容,即写错名称会报错,这时候就体现抽象类的作用了. 总结两句话来说就是: 1.父类和子类中,父类的方法有很多情况下是没有内容的. 2.如果子类重写的时候写错,正常方法不会报错. 抽象类: 用abstract修饰的类叫做抽象类,抽象类不能被实…
Atitit 深入理解抽象类与接口 attilax总结 1.1. 主要区别接口侧重于动作抽象..抽象类是属性名词抽象..1 1.2. 抽象层次类>>抽象类>>接口1 1.3. 既然有了接口为什么还要定义抽象类,??1 1.4. 其次,抽象中间有不同的抽象层次,抽象类的的极限就是接口2 1.5. 他们两者之间对抽象概念的支持有很大的相似,有时候甚至可以互换 2 1.6. 抽象类与接口的历史2 2. 抽象类2 3. 二.接口2 3.1. 抽象层次不同.抽象类是对类抽象,而接口是对行为的…
1. 基本概念 用abstract修饰的类是抽象类.如果类中有方法是abstract类型的,那么此类肯定是abstract类型的,也就是说此类的修饰符肯定有abstract(也就是说,有抽象方法的类是抽象类).抽象类是不完整的,只能作为基类,且不能够实例化. 2. 与类进行比较 抽象类不能够实例化,并且对抽象类直接使用new运算符会导致编译错误. 允许抽象类中包含抽象方法或者变量. 抽象类不能是private的. 3. 和接口比较 不同点: 抽象类能够有实现了的方法,接口不能有. 类可以实现无数…
今天看到项目中,写了一个抽象类,里面有很多方法继承了这类,当调用这个接口时,采用的是这个抽象类去调方法的,当时一想,这个不就是我们说的Java的多态的特征: 继承:存在继承关系的子类和父类 重写:子类对父类的某些方法进行重写(多态下调用的是子类重写的方法) 父类引用指向子类对象:即向上转型,将子类的引用赋给父类的对象 然后,我们调用的时候,就是通过父类的对象去调用方法的.但是,一想接口好像也可以实现多态,并不是抽象类才可以,我们只要多个类实现同一个接口,也可以实现多态, 因此,转着转着,就转到了…
[源码下载] 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait 作者:webabcd 介绍速战速决 之 PHP 类基础 抽象类 接口 trait 示例1.类的相关知识点 1(基础)class/class1.php <?php /** * 类的相关知识点 1(基础) * * 规范:命名空间与目录路径对应,类名与文件名对应,文件以 .class.php 为后缀名 */ class MyClass1 { // 类常量,没有“$”符号,不能被覆盖 const MyConstant…