JAVA多态学习4

原创 2015年07月07日 18:28:51

好啦,说好的这一节要开讲接口了,嘿嘿,还是老样子,读者最好借助之前说的抽象类进行比较喔O(∩_∩)O哈哈~

什么是接口?
接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。

接口的建立语法:interface 接口名{方法;}
语法:class 类名 implements 接口{
        方法;
        变量;
    }

小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶合的设计思想。

接口–注意事项
1、接口不能被实例化
2、接口中所有的方法都不能有主体。错误语法例:void aaa(){}←(注意不能有花括号)
接口可以看作更加抽象的抽象类。
3、一个类可以实现多个接口
4、接口中可以有变量[但变量不能用private和protected修饰]
a、接口中的变量,本质上都是static的而且是final类型的,不管你加 不加static修饰
b、在java开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用
访问形式:接口名.变量名
5、一个接口不能继承其它的类,但是可以继承别的接口

好啦,长气了,现在我们给个例子,说一下接口的应用

package interfacekak;

//Mouth接口
//interface Mouth extends Base{       //错误,接口只能继承于接口,而不能继承与类
interface Mouth extends cell{
    int a=1;//加不加static都是静态的,不能用private和protected修饰
    //声明了两个方法
    public void eat();//嘴巴吃
    public void drink();//嘴巴喝
    /*public void sing()                //出错,
    {
        System.out.println("大家一起唱..");
    };//嘴巴唱
    */
}
//编写了一个狗类,并实现了Mouth接口
//一个重要的原则:当一个类实现了一个接口,要求该类把这个接口的所有方法全部实现
class Dog implements Mouth{
    public void eat(){
        System.out.println("狗要吃东西..");
    }
    public void drink(){
        System.out.println("狗要喝东西..");
    }
}
//接口继承别的接口
class Base{
}

interface cell{
}

//编写了一个猫类,并实现了Mouth接口
class Cat implements Mouth{
    public void eat(){
        System.out.println("猫要吃东西..");
    }
    public void drink(){
        System.out.println("猫要喝水..");
    }
}
//动物类
class Animal{
    //开始使用Mouth接口
    public void activity(Mouth mouth){
        mouth.eat();
        mouth.drink();
    }
}

public class Interfacekak {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        //Mouth.a++;   //a为static,不能改值
        System.out.println(Mouth.a);
        //创建 animal
        Animal animal=new Animal();
        //创建dog
        Dog dog1=new Dog();
        //创建cat
        Cat cat1=new Cat();
        System.out.println(Dog.a);   //可以类可以访问接口的变量
        animal.activity(dog1);
        animal.activity(cat1);


    }

}

结果截图
接口

1、实现接口可以看作是对继承的一种补充。(继承是层级式的,不太灵活。修改某个类就会打破继承的平衡,而接口就没有这样的麻烦,因为它只针对实现接口的类才起作用)
2、实现接口可在不打破继承关系的前提下,对某个类功能扩展,非常灵活。

ps:说好的和抽象类的对比呢?

大哥,能不能注意一下我这两篇,抽象类和接口所说的注意事项,比较一下就好,师傅带进门,修行靠个人啊。。。。

还不够的话,介绍一下别人大神的网址,大家去参观一下吧,小神庙小啊,逃%>_<%
《抽象类与接口的区别 》
http://blog.csdn.net/ttgjz/article/details/2960451

Java多态学习总结

一、多态产生的条件 存在继承关系; 存在方法重写; 要有父类引用指向子类对象。 示例代码:public class PolymorphismTest { public static void...
  • liuweiballack
  • liuweiballack
  • 2015年07月29日 00:17
  • 791

多态经典面试题解析

多态经典面试题 已知类ABCD,B继承于A,C和D继承于B,具体如下 public class A { public void print(A a){ System.out.println(...
  • yxb_yingu
  • yxb_yingu
  • 2016年04月13日 19:25
  • 2499

Java多态,Java多态的深入学习

public class TestAB { /** * @param args */ public static void main(String[] args) { A a = ne...
  • hfmbook
  • hfmbook
  • 2012年05月21日 17:43
  • 402

Java笔记整理:多态

第八章:多态
  • u013400743
  • u013400743
  • 2016年09月05日 11:50
  • 149

java多态学习

最近在重新看java,感觉到多态还有很多不懂的地方,看到这篇文章,有所启发。 JAVA多态 一、相关的类结构点击打开链接 [java] view plaincop...
  • prokechery
  • prokechery
  • 2015年03月04日 10:52
  • 89

Java多态学习

在面向对象多态是
  • u010722938
  • u010722938
  • 2014年11月12日 22:00
  • 380

致各位虚幻4学习者

怎么说呢,能学虚幻4的人,能坚持下来学虚幻4的人,必定是对于游戏有无限的热忱,从内心里真正喜欢游戏的,没个学虚幻的人,可能都是抱着要做震惊世界的牛逼的游戏的想法,参与学习,每个虚幻开发者,必定是把游戏...
  • shangdi712
  • shangdi712
  • 2015年12月24日 11:48
  • 3518

java中多态的经典问题分析

Questionpackage demo;/** * Created by zwj on 2016/3/26. */ class A { public String show(D obj)...
  • zhangwj0101
  • zhangwj0101
  • 2016年03月26日 20:14
  • 1029

java学习笔记----测试多态的用法

java学习笔记(高琪版)面向对象OOP测试多态的用法 多态,是指程序最终状态是在程序运行时才被确定 首先一个类需要被多个类所继承 这多个类相较于父类都有一定的改写才有意义(方法的重写) 新建对象时父...
  • cn_leeyiru_static
  • cn_leeyiru_static
  • 2017年01月26日 21:25
  • 274

Java多态性理解,好处及精典实例

核心: 1、多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到...
  • Jian_Yun_Rui
  • Jian_Yun_Rui
  • 2016年10月26日 20:12
  • 10542
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA多态学习4
举报原因:
原因补充:

(最多只允许输入30个字)