浅谈抽象类和接口

1.接口类就是一个类的领导者,指明方向,非抽象型子类必须实现接口所指定的全部方法。

2.抽象类就是一个类的服务提供商,拥有众多服务,当需要的时候你来用就可以,如果你觉得抽象类提供的服务不满意,你还可以自己在子类重新来做。

3.接口类没有构造函数,抽象类有。

4.抽象类可以有数据成员,接口类不允许有。

5.接口的方法只能由public修饰。抽象类可以有public,private,protected来修饰。

6.一个类只能继承于一个抽象类,却可以继承于多个接口。

7.抽象类中可以有成员方法的实现代码,而接口类不可以有成员方法的实现代码。

下面是我给出的代码:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
 5 <title>PHP数据库类</title>
 6 </head>
 7
 8 <body>
 9 <?php
10 /**********************
11 *内容:接口和抽象类的应用
12 *Author:瞎猫碰上死老虎
13 *Date:2/5/2015
14 *
15 **********************/
16 interface person{
17     public function say(); //定义接口方法
18 }
19 interface popdom{
20     public function salary(); //定义接口方法
21 }
22 class member implements person,popdom{
23     public function say(){
24         echo "我是个大帅哥。";
25     }
26     public function salary(){
27         echo "我时薪只有100块。";
28     }
29 }
30
31 $a=new member;
32 $a->say();
33 $a->salary();
34
35 abstract class peoplea{
36     var $lei="抽象类的幸福";
37     abstract function speak();
38 }
39 class man extends peoplea{
40     function speak(){
41         echo "抽象类的重载";
42     }
43 }
44 $b=new man;
45 echo ‘<br/>‘;
46 $b->speak();
47 echo ‘<br/>‘;
48 echo $b->lei;
49
50 ?>
51
52 </body>
53 </html>

结果为:

1 我是个大帅哥。我时薪只有100块。
2 抽象类的重载
3 抽象类的幸福
时间: 2024-11-03 12:21:35

浅谈抽象类和接口的相关文章

java随笔:浅谈抽象类与接口

一.介绍. 接口和内部类为我们提供了一种讲接口与实现分离的更加结构化的方法. 没有足够信息描述的类我们可以称它为抽象类. 二.问题引入. 我们都知道门具有打开与关闭的功能,还有上锁等功能.门怎么打开与关闭是由设计师来决定的.这时我们可以设定一个抽象类. 1 abstract class door{ 2 abstract void open(); 3 abstract void close(); 4 } 假如此时我们给门加入报警的功能怎么办呢.当然我们不能在原有的door类中直接加入alarm的功

浅谈java中接口与抽象类之间的异同

刚学习java的时候,总觉得接口和抽象类很像,但又说不上具体有什么区别.今天静下来,翻翻书,查查资料,做个小结.首先举两个例子,看看interface和abstract class 在"外形"上有啥异同. 1.先看一下抽象类: abstract class Person{ private String name; private Person(String n) { name=n; } public abstract String getDescription(); public St

为什么这些java接口没有抽象方法?浅谈Java标记接口

在jdk的源码中,存在这样的一些接口,他们不包含任何的(抽象)方法,但是却广泛的存在. 这种接口我们称之为Mark Interface,也就是标记接口. 这些接口呢,我们不用来实现任何的方法,他们的作用就是当某个类实现这个接口的时候,我们就认为这个类拥有了这个接口标记的某种功能了. 下面通过三个例子,分别介绍java中常用的三个标记接口: RandomAccess .Cloneable.java.io.Serializable (1)RandomAccess  在C#中经常会有很多人在争论,在遍

浅谈Android中用接口完美实现回调的逻辑控制

让Android融入我的生活! 公司最近项目特别忙,难得抽时间出来写博客了,不过越忙,接触的东西越多,学的也就越多了! 本例要特别强调一下:只是对高内聚,低耦合思想的一点简单实现,重要思想,而不是代码,请广大读者朋友留意! 前段时间公司Android开发就我一个人,思维太封闭了,自己想个啥样,就写个啥样,现在呢,来了两个同事,项目由我和另外一个同事一起负责,有人交流,可以听听别人的理解,对我们的提高绝对是有益无害,我们也需要调整好自己的心态,能够接受别人的正确建议! 好了,话不多说,进入正题,大

浅谈Java Future接口

Java项目编程中,为了充分利用计算机CPU资源,一般开启多个线程来执行异步任务.但不管是继承Thread类还是实现Runnable接口,都无法获取任务执行的结果.JDK 5中引入了Callable和Future,通过它们执行异步任务可以获取执行结果.FutureTask分析 JDK 5中获取任务执行的结果主要是通过FutureTask类实现的.FutureTask实现了RunnableFuture的接口,它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值

浅谈php 抽象类abstract和接口interface

一.抽象类(abstract) 抽象类定义的规范 1.php5支持抽象类和抽象方法 2.定义得抽象类无法被实例化 3.任何一个类里面声明了抽象方法,那么这个类必须声明为抽象类 4.被定义得抽象方法只能声明其调用方式(参数),不能定义其具体得功能实现 5.继续抽象类的子类必须定义父类(抽象类)所有的抽象方法,并且访问控制(public.protected)必须一致,或者更为宽松 如:父类protected,子类可以protected.public.父类是public,那么子类就只能是public,

浅谈C#中的接口和抽象类

C#中接口为"其他方面互不相干"的类型提供公共的服务和特征:C#中class只支持但继承,使用接口却支持多继承,例如:C#中System.String是从System空间中的4个interface继承而来.public sealed class String:ICompare,ICloneable,ICovertible,IEnumerable:C#中对class使用sealed关键字修饰,代表这个类不能够被在其他类继承. 接下来描述一下2者的区别: 1.两者表达的概念不一样,抽象类是

浅谈接口、抽象类、抽象方法和虚方法的区别

C#抽象类和接口孩子间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于抽象类和接口的选择显得比较随意.其实,两者之间还是有很大区别的. 首先说一下接口与抽象类的异同: 相同点: 1.他们都不能实例化自己,也就是说都是用来被继承的. 2.抽象类中的抽象方法和接口方法一样,都不能有方法体 不同点: 1.抽象类里可以有字段,接口中不能有字段. 2.抽象类中的普通方法可以有方法体,而接口方法没有方法体. 3.接口中的方法不能有访问修饰符,抽象类中的抽象方

7.C#知识点:抽象类和接口浅谈

知识点目录==========>传送门 首先介绍什么是抽象类? 抽象类用关键字abstract修饰的类就是叫抽象类,抽象类天生的作用就是被继承的,所以不能实例化,只能被继承.而且 abstract 关键字不能和sealed一起使用,因为sealed是不允许继承,这样就是抽象类的意义冲突了. public abstract class Test { } 现在我们知道知道了抽象类长的什么样了,下面要知道抽象类是干嘛用的.顾名思义把对象共有的东西抽象出来.比如猫和和狗鸟等都有眼睛,都有嘴巴.那我们就可