【Java】接口(interface)VS抽象类】的更多相关文章

Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现.实现一个接口,用implements ,实现一个接口必须重写接口中的所有方法. 接口定义的举例: public interface Runner{ public static final i…
由于C++和Java都是面向对象的编程语言,它们的多态性就分别靠虚函数和抽象函数来实现. C++的虚函数可以在子类中重写,调用是根据实际的对象来判别的,而不是通过指针类型(普通函数的调用是根据当前指针类型来判断的).纯虚函数是一种在父函数中只定义而不实现的一种函数,不能用来声明对象,也可以被称为抽象类.纯虚函数的实现也可以在类声明外进行定义.C++中的抽象类abstract class是指至少有一个纯虚函数的类,如果一个类全部由纯虚函数组成,不包括任何的实现,被称为纯虚类. Java中的普通函数…
3.5接口interface ①有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. ②接口(interface)是抽象方法和常量值的定义的集合. ③从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现. 3.5.1接口基础语法: 接口也是一种引用类型,可以等同看做类. ①如何定义接口,语法: [修饰符] interface 接口名{} ②接口中只能出现:常量.抽象方法. 接口中的…
浅谈Java接口 先不谈接口,不妨设想一个问题? 如果你写了个Animal类,有许多类继承了他,包括Hippo(河马), Dog, Wolf, Cat, Tiger这几个类.你把这几个类拿给别人用,但是别人想给动物加上宠物功能,要怎么办呢? 根据以往的知识,我们可以: 把Pet方法加入Animal类 这样所有的派生类都有Pet方法,以后新继承Animal的动物也有这个方法. 这个方案很简单,但是这个方案也很操蛋.为什么? 有人会养河马吗?有人会养狼养狮子吗?不太行. 如果都是Pet方法,狗需要遛…
abstract修饰符可以修饰类和方法. (1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型.抽象类就相当于一类的半成品,需要子类继承并覆盖其中的抽象方法. (2)abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明而没有实现,需要子类继承实现. (3)注意的地方: A:有抽象方法的类一定是抽象类.但是抽象类中不一定都是抽象方法,也可以全是具体方法.abstract修饰符在修饰类时必须放在类…
接口定义了一系列的抽象方法和常量,形成一个属性集合. 接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口. 实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义.可以说接口定义了类的框架,它实际上是一种完全的抽象类. 接口的定义格式: 修饰符 interface 接口名 { // 声明变量 类型 变量名; // 声明方法 返回值类型 方法名(参数); } 接口定义注意一下几点: 接口的修饰符只能为默认的(无修饰符)或者public.当修饰符为默认时,接口是包可见的,在几…
狭义概念 : Java 中的 interface 广义概念 : 对外提供规则的都是 接口 接口的定义方式 :  interface 接口名 { } 用类实现接口:       class 类名 implements 接口名 {     } 1. 接口不能被实例化: 2. 接口中的方法都是抽象方法:,系统会 默认加上 public abstract 3. 接口的实例化要按照多态的方式来实现 .‘ 4. 接口的子类 可以是 抽象类 ,但一般不这样写: 可以是具体类.类中要重写接口中的所有方法 5.接…
引言 接口这个词在生活中我们并不陌生. 在中国大陆,我们可以将自己的家用电器的插头插到符合它插口的插座上: 我们在戴尔,惠普,联想,苹果等品牌电脑之间传输数据时,可以使用U盘进行传输. 插座的普适性是因为大部分都是国标的:U盘可以插到这些电脑上,是因为都遵循了USB2.0或者USB3.0的标准. 在遵循相同标准的前提下,就出现了接口. 接口的定义 由引言可知,接口就是多个类之间的公共规范. 我们知道,普通类的定义是这样的 public class 类名{ } 接口的定义把class换成inter…
1.定义接口 package test.intefaces; public interface TestIntefaceA { void testA(); void testB(); void testC(); } 2.定义抽象类实现接口: package test.intefaces.impl; import test.intefaces.TestIntefaceA; public abstract class TestAbstractImplA implements TestInteface…
interface 定义了一个接口类,它里面的方法其子类必须实现.接口是类的一个模板,其子类必须实现接口中定义的所有方法. interface User{     function getHeight($height);     function getWeight($weight);  } class my implements User{     function getHeight($username){         echo $height;     }     function g…