抽象方法

Java---抽象类&接口

删除回忆录丶 提交于 2020-02-21 18:56:45
抽象类 1.什么是抽象类? 如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅作为其派生类的一个基类 --抽象类作为父类,主要是定义功能而已,具体的实现交给派生类 2.语法: abstract class 类名{} 3.规则 ①.抽象类可以包含抽象方法也可以包括非抽象方法 ②.抽象类不能被实例化 ③.抽象类只能被继承 ④.普通类中不能定义抽象方法 ⑤.有抽象方法的类一定是抽象类 4.抽象方法 ①语法 :abstract 方法名(); ②.抽象方法没有方法体; ③.子类必须全部实现父类当中的抽象方法 接口 1.什么是接口? ①.接口是对一组方法的声明 ②.接口的出现是为了解决Java不支持多继承的问题 ③.接口可以将不同的类或者不同层次的类具有的相同行为集合在一起 2.实现类 ①.实现接口的类Keyboard implements USB ②.实现类要实现接口中定义的所有抽象方法 ③.如果一个类继承了一个父类同时也要实现一个接口,那么继承父类一定是在前面 subclass extends class implements interface ④.如果实现多个接口,中间使用逗号隔开 class implements interface1,interface2 3.接口的规则 ①.接口中的方法都是抽象方法,方法前面都默认省略了public abstract ②

Java中abstract和interface的区别

六月ゝ 毕业季﹏ 提交于 2020-02-21 18:21:16
本文转自: http://www.cnblogs.com/gxinliug/archive/2011/04/27/2031246.html   abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。 一、理解抽象类   abstract class和interface在Java语言中都是用来进行抽象类(本文中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法,请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢?在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的

抽象类与抽象方法

旧时模样 提交于 2020-02-21 11:16:37
l 抽象类和抽象方法 抽象类和抽象方法:使用abstract关键字修饰的类和方法就成了抽象类和抽象方法,格式与普通类和方法类似。 抽象类的特性: ·有抽象类就要有继承的子类去实现抽象类中的抽象方法。 ·抽象类中可以定义普通类中定义的所有成员,并且只有在抽象类中才能定义抽象方法。 ·抽象类中不能new对象,抽象类中的对象是给子类调用的。 ·在抽象类中定义的方法,在其普通子类中必须实现所有抽象父类中定义的所有抽象方法,否则这个子类也要申明成抽象类。 抽象方法的特性: ·抽象方法只有方法声明没有方法实现 ·抽象方法是准备在子类中实现的,它只是一个模板。 没有抽象属性和抽象变量一说。 注意: abstract与final不能同时修饰一个方法或类。因为final修饰的方法不能被重写而abstract修饰的方法需要在子类实现(重写);final修饰的类不能有继承,而abstract修饰的类是抽象类必须要有子类,因此这两个修饰符冲突,不能一起使用。 abstract与static不能同时修饰一个方法。static修饰方法属于类方法,可以被“类.方法”类直接调用,而abstract修饰的方法是抽象方法,没有方法体,是需要在子类中重写的方法。因此static不能与abstract同时修饰一个方法。 abstract与private不能同时修饰一个方法。private修饰的方法只能在当前类被调用

Java面向对象大致梳理

别说谁变了你拦得住时间么 提交于 2020-02-20 13:01:03
面向对象思想、 面向对象思想概述: Java设计语言面向对象: Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。 类和对象: 类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该 类事物 属性:就是该事物的状态信息。 行为:就是该事物能够做什么。 对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性 和行为。 类与对象的关系 : 类是对一类事物的描述,是抽象的。 对象是一类事物的实例,是具体的。 类是对象的模板,对象是类的实体。 面向对象之封装: 概述: 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

java面试题 -- 基础

醉酒当歌 提交于 2020-02-19 15:12:30
1.抽象和封装的不同点 抽象和封装是互补的概念。一方面,抽象关注对象的行为。另一方面,封装关注对象行为的细节。一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略。 2.重载和重写的区别 重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。 重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private则子类就不能重写该方法。 3.字符型常量和字符串常量的区别 字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符字符常量相当于一个整形值(ASCII值),可以参加表达式运算 字符串常量代表一个地址值(该字符串在内存中存放位置)字符常量只占一个字节 字符串常量占若干个字节(至少一个字符结束标志)4.成员变量与局部变量的区别有那些? 从语法形式上,看成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public,private,static等修饰符所修饰,而局部变量不能被访问控制修饰符及static所修饰;但是,成员变量和局部变量都能被final所修饰;从变量在内存中的存储方式来看,成员变量是对象的一部分,而对象存在于堆内存

Java学习笔记(三)

…衆ロ難τιáo~ 提交于 2020-02-17 17:34:31
继承(子类 is a 父类) //父子类有成员变量,成员函数重名(覆盖 重写)时。创建的对象是谁,就优先用谁。如果没有,则向上找。 //@override: 检测是否是正确的覆盖重写 public class Extends { public static void main ( String [ ] args ) { Teacher teacher = new Teacher ( ) ; teacher . method ( ) ; //父类方法执行 teacher . methodT ( ) ; //30 20 10 Assistant ass = new Assistant ( ) ; ass . method ( ) ; //父类方法执行 ass . methodE ( ) ; //子类运行方法e } } //父类 class Employee { int num = 10 ; public void method ( ) { System . out . println ( "父类方法执行" ) ; } public void methodE ( ) { System . out . println ( "父类运行方法e" ) ; } } //子类1 class Teacher extends Employee { int num = 20 ; public void

抽象类和接口的区别

心不动则不痛 提交于 2020-02-17 11:51:58
继承与实现: 1.抽象类可以被子类继承,接口既可以被继承也可以被实现。 方法: 2.抽象类可以做方法声明也可以做方法实现,接口只能做方法声明 变量: 3.抽象类内定义的变量是普通变量,接口定义的变量只能是公共的静态的变量。  4.如果一个类里面有抽象方法,那么这个类只能是抽象类  5.抽象方法要被实现,所以抽象方法不能是静态的,也不能是私有的  6.抽象方法只能声明,不能实现 补充: 接口:接口内的定义的成员变量都是静态的常量,都是必须是被public static final修饰的,就算你定义的时候没有加修饰符,系统也会帮你加上去。        接口内的方法都是抽象方法,就算你定义的时候没有加上abstract,系统也会帮你加上。而且,接口内的方法不能用private或protectd修饰,只能用public或者默认,默认的话最后会   被自动转成public。    修饰接口的修饰符可以是public、friendly,但是一定是abstract的。    继承指定接口的类,必须重写并实现该接口所有的方法,否则该类就是抽象类。      抽象类:含有一个或多个抽象方法的类就是抽象类,但是抽象类不一定需要含有抽象方法,例如你定义一个类为abstract,但是这个类里边不含有抽象方法也是可以的,只是意义不大。     抽象类和普通类的区别大致有3点:     1.抽象类不能实例化

Java学习--抽象

谁都会走 提交于 2020-02-17 01:57:16
文章目录 抽象 abstract关键字 使用格式 抽象方法 使用格式 抽象类 使用格式 使用 注意事项 抽象 abstract关键字 使用格式 修饰符 abstract 返回值类型 方法名 (参数列表) abstract class 类名字 { } 抽象方法 没有方法体的方法 使用格式 修饰符 abstract 返回值类型 方法名 (参数列表) public abstract void run(); 抽象类 包含抽象方法的类 使用格式 abstract class 类名字 { } public abstract class Animal { public abstract void run(); } 使用 继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。 最终,必须有子类实现该父 类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。 注意事项 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。 理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。 理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。 理解:未包含抽象方法的抽象类

abstract关键字

廉价感情. 提交于 2020-02-17 01:51:14
abstract关键字 :英文单词的意思,抽象的 (1)修饰类 -->称为抽象类 特征:就是不能创建对象(不能实例化) public abstract class Animal { } (2)修饰方法 :使用abstract修饰的方法称为抽象方法 特 点: a)没有方法体,只能以分号结尾 b)必须定义在抽象类里 c)必须被子类实现,如果子类不实现,那么子类也得是抽象类 抽象类里可以包含0个或多个抽象方法,抽象方法必须定义在抽象类中 来源: CSDN 作者: Penerx 链接: https://blog.csdn.net/penerx/article/details/104349505

Java 中的封装、继承与多态

与世无争的帅哥 提交于 2020-02-15 05:50:12
在前面的 《 Java — 面向对象的编程语言》 里,介绍了面向对象的三大特征:封装、继承、多态,主要是概念上的讲解,本篇文章将从代码出发,看看 Java 中的封装、继承与多态。 一、封装 在编程时,把数据(属性)和有关属性的一些操作(方法)绑定在一起,形成一个不可分开的集合(类),这个过程就是封装( Encapsulation )。 封装时,我们需要隐藏对象的属性和实现细节,仅对外公开接口,并控制在程序中属性的读和写的 访问级别 。 一般情况下,我们会把所有的属性都 私有化 ,对每个属性提供 getter (读) 和 setter (写) 方法,供外界使用: public class Person { private String name ; private int age ; public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public int getAge ( ) { return age ; } public void setAge ( int age ) { this . age = age ; } } public class Me { public static void main ( String [ ]