接口与抽象类

接口中的属性 默认是 public static final类型  就算你不加 默认也是存在

方法默认都是public abstract类型 不加默认也存在

比如

interface K

{

    String abc="sdfd";

    void add() throws Exception;

}

实际上编译时 是这样

interface K

{

    Public static final String abc="sdfd";

    public abstract void add() throws Exception;

}

 

为什么属性是static

   因为 接口不能实例化,非静态变量必须是实例化的对象或则有方法体的方法可以可以调用 所以不是静态就没有意义了

为什么必须是 public

  因为接口本来就是一种约束 定义抽象方法 就是约束子类必须去实现 必须是public 否则访问不到

  属性不定义成public 外界访问不到 同样没有意义了

为什么方法是abastract

因为带有abstract 关键字的方法,子类才必须实现 所以带有abstract关键字的方法

不能带有final  abstract 是子类必须继承  final 是该方法不能被重写 所以会产生冲突

 比如

interface K

{

    Public String abc="sdfd";

    public void add() throws Exception;

}

 

public class H implements K{

    public String abc="";

    public  final void add() {

       System.out.println(K.abc);

    }

    public static void main(String[] args) {

       H h=new H();

       h.add();

    }

}

 

子类实现接口时基本的结构必须与接口一致,你不能再方法上添加如 static修饰符

不得将 public 修饰符改成private  但是你可以加上修饰符 final 表示子类的子类不能重写该方法

 

其实继承接口实现方法 继承类 重写方法 的语法是一致的

 

接口可以继承接口.抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数(这句话有点问题 看下面例子 V类并没有明确的构造函数 只有默认的构造函数).

 

class V implements IV{

    public void add()

    {

       System.out.println("add");

    }

}

interface IV

{

    public void add();

}

interface IV1

{

    public void add();

}

public abstract class 抽象类继承 extends V implements IV,IV1  {

 

    public  void add() {

       // TODO Auto-generated method stub

       super.add();

    }

}

 

抽象类 与接口的区别

1接口内只能是功能的定义,抽象类中可以包括功能的定义和功能的实现。

 2. 抽象类是用来extends的,而继承有一定的局限性,只能继承一个类
而接口就不同,可以同时实现多个接口

3 接口字段定义默认为public static final,而抽象类的则默认为friendly

转载于:https://www.cnblogs.com/liaomin416100569/archive/2009/12/04/9332100.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制造行业电子化签约及印控一体化解决方案

当生产“智造化”、营销“数字化”成为趋势,生产制造型企业如何实现产品生产-销售全流程提速降本?生产制造型企业为了在生产、营销环节降低成本、提升效率,经营模式上常有如下特征:• 原料导向,多点协同生产&#xff1…

python 点击按钮采集图片_python多线程采集图片

cmd中运行>python untitled2.py 图片的网站import requestsimport threadingfrom bs4 import BeautifulSoupimport sysimport osif len(sys.argv) ! 2:print("Usage : " )print(" python main.py [URL]" )exit(1)# config-starturl sys.argv[1]thre…

一起手写Vue3核心模块源码,掌握阅读源码的正确方法

最近和一个猎头聊天,说到现在前端供需脱节的境况。一方面用人方招不到想要的中高级前端,另一方面市场上有大量初级前端薪资要不上价。特别是用 Vue 框架的,因为好上手,所以很多人将 Vue 作为入门框架,但学得深的人并不…

jquery|javascript 回车事件

转载链接:http://www.cnblogs.com/wenbo/archive/2011/08/20/2147014.html 转载链接: http://www.2cto.com/kf/201202/119741.html jquery实现回车事件,代码如下: 全局: $(function(){ document.onkeydown function(e){…

【Vegas原创】ASP 0131 不允许父路径的解决

现象: Active Server Pages 错误 ASP 0131 不允许的父路径 /admin/login.asp,行 2 包含文件 ../include/config.asp 不能用 .. 表示父目录。 解决方案: IIS6>站点属性>主目录>配置>选项>启用父路径 转载于:https://www.cnblog…

腾讯正式宣布成立技术委员会,要对组织架构下狠手

2019 年伊始,社交巨人腾讯正式宣布成立技术委员会,计划在未来发力内部代码的开源和协同,投入更多资金和精力在技术建设上。BAT 三家里一直被诟病技术建设落后的腾讯,终于开始补足自己的短板。这会对腾讯自身带来什么?又…

2020 前端技术发展回顾

大家好,我是若川,今天给大家分享一篇来自阿里妈妈前端快爆的好文。另外,偷偷告诉你,截止今晚9点 点此抽奖送红包还送3本比红宝书还贵的书可以点击文章末尾阅读原文直达知乎链接,以下是正文2020 终究是一个不平凡的一年…

php验证码函数 使用imagestring() imagefttext()设置字体大小

转载路径:http://hi.baidu.com/asdasd_cn/item/62977d1e26ca36e85e53b142 生成验证码图片的两个函数 第一个是用imagestring bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ) imagestring() 用 col …

提取地图中道路_非机器学习方法·从遥感影像中提取道路

本科低年级曾经做过一个提取道路线的题目。提供的数据:老师给我们了一幅学校周边地区的影像,包括RGBInfrared四个波段。一开始使用的方法:当时尚青涩的我和小伙伴们一起使用KMEANS、阈值分割等等方法试图将那道路从影像中分离出来。遇到的问题…

图片尺寸自适应

图片尺寸自适应 οnlοad"javascript:if(this.height>this.width){this.height100}else{this.width100} 转载于:https://www.cnblogs.com/TangZhongxin/archive/2009/12/14/3942483.html

第一章知识点

第一章知识点 一:SQL语言 1,结构化查询语言,是关系数据库的标准语言 2,分类: 2.1:数据操作语言:DML;包括:即增删查改;insert,update,d…

2021年,推荐这几个优质公众号碎片化学习

2021 年了,前端技术日新月异,发展迅速,前端公众号是不是感觉越来越多了?在着辞旧迎新之际,这里盘点几个前端开发工程师 2021 年必须关注的优质公众号,希望对你有所帮助。大家可以像我一样,利用碎…

php 处理表单里面的 单双引号

转载链接:http://developer.51cto.com/art/200911/165392.htm 我们今天要向大家介绍的是PHP magic_quotes_gpc的具体使用方法。大家都知道在PHP中一个特殊的函数魔术函数,它在引用的过程中只有在传递$_GET,$_POST,$_COOKIE时才会发生作用。 PHP函数preg…

阿里云插件新版发布,多特性助力提升开发者体验

好消息!阿里云 Cloud Toolkit 新版本于近日正式发布,推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件,多个重大特性,持续提升开发者体验,本文将带大家快速预览该新版本。 本文只挑选下面三个重大特性进行解读&…

海鸥表表带太长了怎么拆_表带安装,表带太长了,怎么拆解和安装?

表带太长了,怎么拆解和安装?1、准备拆表带前请看清楚表带背面的箭头。2、有箭头的带粒是可拆卸的。3、拧松拆带器把手,将表带放入表槽,并保持拆带器的钢针对准针孔,如图二,且拆带器的钢针顺着箭头的指示方向…

python类库31[文件和目录os+os.path+shutil]

一 常用函数 os模块 os.sep 表示默认的文件路径分隔符,windows为\, linux为/os.walk(spath): 用来遍历目录下的文件和子目录os.listdir(dirname):列出dirname下的目录和文件os.mkdir() : 创建目录os.makedirs(): 创建目录,包含中间…

上一轮中奖信息公布

大家好,我是若川,抽奖活动其实挺耗时耗力的,尤其是留言和在看抽奖。比如我这篇文章写完就已经23:50了。特别想说的是:有126人点击了在看,但我的好友展示只有93人在看。说明还有30多人点击了在看,但忘记加我…

css判断不同分辨率显示不同宽度布局实现自适应宽度

转载链接:http://www.jb51.net/css/151312.html 点评:CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8。将用到css3 media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给…

安卓相机 高帧率_Android MediaCodec和摄像头:如何实现更高的帧速率从相机获取帧原始数据?...

摄像机API有两个不同的参数用于控制帧速率:setPreviewFrameRate,它采用单帧速率值并且不推荐使用,setPreviewFpsRange采用一系列FPS值,是当前推荐的控制.单FPS设置控制不充分的原因是,有时您希望相机在黑暗条件下降低帧速率以使取景器保持明亮(静态相机取景器就是这…

开发、测试与QA的区别以及其他

觉得这个比喻比较新颖,觉得蛮有意思的,故转自过来。 最近部门中有同事在问这个问题,我想应该还是有满多人对这三个角色的定位还不是很清楚,因此就这三个角色谈谈我个人的认识。 网络上关于这三种角色的定义已经够多,在…