
08-04 Java语言基础(接口)
发布日期:2021-05-06 23:59:23
浏览次数:16
分类:技术文章
本文共 1883 字,大约阅读时间需要 6 分钟。
接口概述和特点
从狭义角度来讲,就是java中的interface。从广义上来讲,对外提供规则的都是接口。
接口特点:
-
接口用关键字interface表示
interface 接口名 {} -
类实现接口用implements表示
class A implements 接口 {} -
接口不能实例化,因为调用抽象方法没有意义
-
接口的子类:可以是抽象类,也可以是非抽象类,如果是非抽象类,则要重写接口中的所有抽象方法。
接口的成员特点
成员变量:只能是常量,并且是静态的并公共的。默认修饰符:public static final。
构造方法:接口没有构造方法 成员方法:只能是抽象方法,默认修饰符:public abstract类与类、类与接口、接口与接口的关系
类与类:继承关系,只能单继承,可以多层继承
类与接口:实现关系,可以单实现,也可以多实现 接口与接口:继承关系,可以单继承,也可以多继承 总结:接口的出现弥补了类的单继承性带来的缺陷抽象类和接口的区别
- 成员区别: 抽象类: 成员变量:可以是变量,也可以是常量 构造方法:有 成员方法:可以抽象,也可以非抽象 接口: 成员变量:只可以是常量 成员方法:只可以是抽象
- 设计理念区别 抽象类 被继承体现的是:“is a”的关系,抽象类中定义的是该继承体系的共性功能。 接口 被实现体现的是:“like a”的关系,接口中定义的是该继承体系的扩展功能。
代码
public class Test03 { public static void main(String[] args){ Cat c = new Cat("加菲", 8); c.eat(); c.sleep(); JumpCat jc = new JumpCat("小加菲", 10); jc.jump(); System.out.println(jc.getName()); }}abstract class Animal{ private String name; private int age; public Animal(){ } public Animal(String name, int age){ this.name = name; this.age = age; } public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public int getAge(){ return age; } public abstract void eat(); public abstract void sleep();}interface Jumping{ public abstract void jump();}class Cat extends Animal{ public Cat(){ } public Cat(String name, int age){ super(name, age); } public void eat(){ System.out.println("猫吃鱼"); } public void sleep(){ System.out.println("猫睡觉"); }}class JumpCat extends Cat implements Jumping{ public JumpCat(){ } public JumpCat(String name, int age){ super(name, age); } public void jump(){ System.out.println("猫跳高"); }}
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年03月17日 23时15分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leetcode-两数之和(简单题-1)
2019-03-04
ubantu软件管理命令及远程登陆命令
2019-03-04
不同路径--动态规划
2019-03-04
字符串解码--动态规划
2019-03-04
Java字节数组输入流ByteArrayInputStream
2019-03-04
Java 对象流
2019-03-04
信息时代的安全威胁
2019-03-04
初识:神经网络(Neural Networks)
2019-03-04
select的使用和order by排序使用
2019-03-04
7-10 公路村村通
2019-03-04
PID455 / [NOI2001]食物链
2019-03-04
7-39 魔法优惠券
2019-03-04
南京晓庄学院-数据库系统概论期末复习习题册(1)数据库系统概述
2019-03-04
南京晓庄学院-数据库系统概论期末复习习题册(4)数据库安全性
2019-03-04
翻译 requests模块 官方文档 install
2019-03-04
金融信息安全实训之信息加密与消息摘要
2019-03-04
怎么从GPS模块发送来的字符串中解析出自己需要的经纬度以及时间信息
2019-03-04
fufu学前端之H5+Javascript
2019-03-04
fufu学软件之IEDA配置项目依赖
2019-03-04
stl string详解
2019-03-04