从零开始学java (五)接口与内部类

本文详细介绍了Java接口的概念及使用方法,包括接口如何描述类的功能而非实现,以及类如何实现多个接口。此外,还通过具体示例展示了接口与抽象类的区别,并简要提及了内部类的相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  接口,是描述类具有什么样的功能,而不是给出每个功能的实现。一个类可以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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值