黑马程序员——interface

来源:互联网 发布:json传值到controller 编辑:程序博客网 时间:2024/04/29 03:06

------- android培训、java培训、期待与您交流! ----------


<code class="hljs axapta has-numbering"><span class="hljs-comment">/*    接口interface {}接口中的成员修饰符是固定的。 成员常量:public static final 成员函数:public  abstract接口的出现将“多继承”通过另一种形式体现出来,即“多实现”接口:初期理解,可以认为是一个特殊的抽象类    当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。class 用于定义类interface 用于定义接口接口定义,格式特点:    1.常量 抽象方法    2.固定修饰符:        成员常量:public static final(方法)成员函数:public  abstract记住:接口中的成员都是public的接口是不能创建对象的,因为有抽象的方法。需要被子类的实现,子类的接口中的抽象方法全都覆盖之后,子类才可以实例化。否则子类是一个抽象类。接口可以被类多实现(即使方法名称相同,但【无】方法主体,下面实现只需覆盖一次即可,可由子类任意定义),也是对多继承的转换形式,java支持多实现,    ——java不支持多继承,【有】方法主体,父类中的方法有重复,导致子类调用出现问题    类与类之间是继承关系,类与接口之间是实现关系,接口与接口之间是继承关系(有内容是实现,无内容是继承)      【类与类】之间支持【单】继承。只有在【接口与接口】之间支持【多】继承*/</span><span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Inter</span>{</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">int</span> NUM = <span class="hljs-number">3</span>;<span class="hljs-comment">//全局常量,常量要大写</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> shou();<span class="hljs-comment">//因没有方法主题可以让子类任意定义</span>}<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">InterA</span>{</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> method();}<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Demo</span>{</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> function(){}}<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Test</span> <span class="hljs-inheritance"><span class="hljs-keyword">extends</span></span> <span class="hljs-title">Demo</span> <span class="hljs-inheritance"><span class="hljs-keyword">implements</span></span> <span class="hljs-title">Inter</span>,<span class="hljs-title">InerA</span>//<span class="hljs-title">Test</span> 实现了 <span class="hljs-title">Inter</span>,<span class="hljs-title">InterA</span>【多实现】 <span class="hljs-title">Inter</span>,<span class="hljs-title">InerA</span>//【 <span class="hljs-inheritance"><span class="hljs-keyword">implements</span></span> <span class="hljs-title">v</span>.实现】【 <span class="hljs-inheritance"><span class="hljs-keyword">extends</span></span> <span class="hljs-title">v</span>.延伸】//一个类在继承了一个类同时 还是可以实现多个借口//普通类继承:父类中有非抽象内容可以继承过来使用//接口,全都都是抽象,将接口的抽象全都实现后才能实例化{</span>    <span class="hljs-keyword">public</span>  <span class="hljs-keyword">void</span> shou(){}    <span class="hljs-comment">//接口比较特殊,接口内成员都是public的【固定的】,要覆盖接口,权限是需要一样大,public修饰</span>    <span class="hljs-comment">//抽象类不同可以自己设置权限</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> method(){}}<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">A</span>{</span>    <span class="hljs-keyword">void</span> methodA();    <span class="hljs-comment">//int show();//返回值为int</span>}<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">B</span> //<span class="hljs-inheritance"><span class="hljs-keyword">extends</span></span> <span class="hljs-title">A</span>{</span>    <span class="hljs-keyword">void</span> methodB();    <span class="hljs-comment">//boolean show();//返回值为boolean</span>}<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">C</span> <span class="hljs-inheritance"><span class="hljs-keyword">extends</span></span> <span class="hljs-title">B</span>,<span class="hljs-title">A</span>//<span class="hljs-title">A</span>,<span class="hljs-title">B</span>方法中<span class="hljs-title">show</span>的返回值不同无法继承,是错误的{</span>    <span class="hljs-keyword">void</span> methodC();}<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">D</span> <span class="hljs-inheritance"><span class="hljs-keyword">extends</span></span> <span class="hljs-title">C</span>//需要建立 <span class="hljs-title">D</span> 的对象 需要覆盖三个方法{</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> methodA(){}    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> methodB(){}    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> methodC(){}}<span class="hljs-class"><span class="hljs-keyword">class</span>  <span class="hljs-title">InterfaceDemo</span>{</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> main(String[] args)     {        Test t = <span class="hljs-keyword">new</span> Test();<span class="hljs-comment">//新建一个Test对象</span>        System.out.println(t.NUM);<span class="hljs-comment">//对象 调用成员</span>        System.out.println(Test.NUM);<span class="hljs-comment">//类 调用</span>        System.out.println(Inter.NUM);<span class="hljs-comment">//编译之后生成三个文件 Inter.class  InterfaceDemo.class Test.class</span>        <span class="hljs-comment">//t.NUM = 4; //常量是无法重新赋值的</span>    }}</code>

<code class="hljs axapta has-numbering"><span class="hljs-comment">/*视屏 96——接口的特点接口是对外暴露的规则接口是程序的功能扩展接口可以用来多实现类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口接口与接口之间可以有继承关系【基本】功能定义在【类】中  【扩展】功能定义在【接口】中*/</span><span class="hljs-keyword">abstract</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Student</span>{</span>    <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> study();    <span class="hljs-keyword">void</span> sleep()    {        System.out.println(<span class="hljs-string">"sleep"</span>);    }    <span class="hljs-comment">//abstract void smoke();//不是共性行为</span>}<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Smoking</span>//特有行为{</span>    <span class="hljs-keyword">void</span> smoke();}<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ZhangSan</span> <span class="hljs-inheritance"><span class="hljs-keyword">extends</span></span> <span class="hljs-title">student</span> <span class="hljs-inheritance"><span class="hljs-keyword">implements</span></span> <span class="hljs-title">Smoking</span>//继承<span class="hljs-title">studet</span>共性之后,还可以扩展(特有行为)继承之外扩展其他功能//功能扩展{</span>    <span class="hljs-keyword">void</span> study(){}    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> smoke(){}<span class="hljs-comment">//必须有public </span>}<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">LiSi</span> <span class="hljs-inheritance"><span class="hljs-keyword">extends</span></span> <span class="hljs-title">Student</span>{</span>}<span class="hljs-class"><span class="hljs-keyword">class</span>  {</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> main(String[] args)     {        System.out.println(<span class="hljs-string">"Hello World!"</span>);    }}</code>
------- android培训、java培训、期待与您交流! ----------

0 0