博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始学java (五)接口与内部类
阅读量:5084 次
发布时间:2019-06-13

本文共 1701 字,大约阅读时间需要 5 分钟。

  接口,是描述类具有什么样的功能,而不是给出每个功能的实现。一个类可以implements多个接口...接口中可以含有 变量和方法。但是要注意,

接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定

为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误),并且接口中

所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。从这里可以隐约看出接口和抽象类的区别,接口是一种极度抽象的类型,

它比抽象类更加“抽象”,并且一般情况下不在接口中定义变量。

  定义一个接口,名字叫animal ,假设都有吃和睡的功能。

public interface Animal {     void eat();     void sleep();}
View Code

  同时定义一个Cats接口,猫科动物的特性。

public interface Cats {      public void climb();    public void hunt();}
View Code

    猫同时继承这两个接口,并实现方法。

public class Cat implements Animal,Cats{    @Override    public void eat() {        System.out.println("吃鱼");    }    @Override    public void sleep() {        System.out.println("白天睡觉");            }    @Override    public void climb() {        System.out.println("猫会爬树");            }    @Override    public void hunt() {        System.out.println("猫会抓老鼠");            }}
View Code

    狗是动物,但不是猫科动物。同时狗有特殊的看家本领,所以它应该具有特殊的方法!

public class Dog implements Animal{     @Override    public void eat() {        System.out.println("吃狗粮");            }    @Override    public void sleep() {        System.out.println("晚上睡觉");            }    public void Housekeeping(){        System.out.println("狗会看家");    }}
View Code

    测试一下。。

public class TestInterface {        public static void main(String[] args) {         Animal dog = new Dog();         dog.eat();         dog.sleep();         //dog.Housekeeping();这里会报错,因为接口里并没有这个方法         Cats cat = new Cat();         cat.climb();         cat.hunt();    }}
View Code

 二.内部类 

   http://www.cnblogs.com/dolphin0520/p/3811445.html 

转载于:https://www.cnblogs.com/jiong1184/p/6707429.html

你可能感兴趣的文章
Zookeeper常用命令 (转)
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
数据库链路创建方法
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
jQuery如何获得select选中的值?input单选radio选中的值
查看>>
设计模式 之 享元模式
查看>>
如何理解汉诺塔
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
3.0.35 platform 设备资源和数据
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>