文档章节

Java之接口与内部类6.1.1

Watto
 Watto
发布于 2017/04/05 16:50
字数 488
阅读 2
收藏 0

package com.aowin.define;

//接口是定义一个合约
//接口也是一种数据类型
//定义接口使用interface关键字
/*
 *   public interface 接口名称{}
 *   接口中的成员变量均为public static final的
 *   接口中的方法均为公共抽象的,public abstract,abstract修饰的方法没有方法体
 *   
 *   public interface 接口名称   extends 接口1,接口2...{}
 *   接口可以继承别的接口使用extends关键字,而且接口的继承是多继承,这一点可以弥补类是单继承的缺陷 *   
 */
//接口可以声明引用变量,但不能直接new创建对象
//类实现接口使用implements关键字,然后创建实现类的对象
//类实现接口是多实现的,implements接多个接口名称,之间用,隔开
/*
 *     class 类名  implements 接口1,接口2....{}
 *  类中要为所有接口的抽象方法提供具体实现
 *  
 *  abstract class 类名 implements 接口1,接口2...{}
 *  抽象类不必为所有的抽象方法提供具体实现
 * 
 */
//接口也可以使用多态

public interface Usbable {
    //成员
    public static final int I=100;
    double PI=3.14;                    //public static final可以省略不写
    
    //方法
    public abstract void read();
    void write();                    //public abstract可以省略不写
    

}
 

package com.aowin.define;

public class Test {
    
    public static void main(String[] args) {
        Usbable usb1;
        //usb1 = new Usbable();
        usb1 = new Keyboard("dell",50.0);        
        usb1.read();
        
        Usbable usb2 = new Mouse();
        usb2.read();
        
        Usbable[] arr = {usb1,usb2,new Mouse()};
        
    }

}
 

package com.aowin.define;

public interface Aable {
    
    void a();

}
 

package com.aowin.define;

public interface Bable {
    void b();
}
 

package com.aowin.define;

public interface Cable extends Aable,Bable{

}
 

package com.aowin.define;

public class Keyboard implements Usbable{
    
    private String brand;
    private double price;
    
    

    public Keyboard(String brand, double price) {
        super();
        this.brand = brand;
        this.price = price;
    }
    
    

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public void read() {
        System.out.println("读取键盘字符..."); 
        
    }

    @Override
    public void write() {
        // TODO Auto-generated method stub
        
    }

}
 

package com.aowin.define;

public class Mouse extends Object implements Usbable, Cable{

    @Override
    public void a() {
        // TODO Auto-generated method stub

    }

    @Override
    public void b() {
        // TODO Auto-generated method stub

    }

    @Override
    public void read() {
        System.out.println("读取鼠标光标位置...");
        System.out.println("PI="+PI); 

    }

    @Override
    public void write() {
        // TODO Auto-generated method stub

    }

}
 

 

 

© 著作权归作者所有

共有 人打赏支持
Watto
粉丝 1
博文 71
码字总数 27737
作品 0
杭州
程序员
私信 提问
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
2018/06/21
0
0
给使用 Kotlin 开发 Android 小伙伴的一些小建议

转眼间使用 Kotlin 已经有两个月了,时间不长,我也算搭上了 Google 宣布 Kotlin 作为官方支持语言的一波末班车。可能大家早已从纯 Java 开发 Android 转为了混合使用开发甚至是 Kotlin 开发...

nanchen2251
2018/10/26
0
0
Java面试题收集

Java面试题收集 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2.你所知道网络协议有那些? HTTP:超文本传输协...

皮皮尘啊
2017/06/21
1K
9
new和反射产生java内部类的实例化详解

前两天看到一道口试题,是关于内部类的知识,觉得很有意思。 这道题是这样的: 根据注释填写(1),(2),(3)处的代码 public class Test{ ?????? public static void main(String[] args){ ??...

zaizai_loong
2013/09/02
0
0
关于Java对象的继承和多态学习笔记

-------------------------关于对象的构造过程------------------------ 如果类B继承了类A,那么当创建类B的实例时,遵循如下过程: 1、如果类A有静态的成员变量,初...

mj4738
2012/01/15
0
1

没有更多内容

加载失败,请刷新页面

加载更多

为什么强烈建议大家使用枚举来实现单例

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的...

群星纪元
23分钟前
5
0
Confluence 6 超过当前许可证期限进行升级

这个页面将会对你在进行 Confluence 升级的时候超过了当前许可证的期限进行升级的情况。 许可证警告 在升级的过程中,你将会在 Confluence 的应用程序日志(log file)中看到类似下面的错误提...

honeymoose
36分钟前
2
0
顶尖战略咨询公司常用分析模型

1、KANO模型 日本教授狩野纪昭(Noriaki Kano)构建出的kano模型。将影响用户满意度的因素划分为五个类型,包括: 魅力因素:用户意想不到的,如果不提供此需求,用户满意度不会降低,但当提供...

Moks角木
52分钟前
2
0
Linux iptables之mangle表使用案例

mangle表的用途 mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。 mangel表使用示例 示例1-策略路由1 内网的客户机通...

月下狼
今天
3
0
OSChina 周日乱弹 —— 兼职我想去学学布偶戏

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy : 《火炎 - 女王蜂》 《火炎 - 女王蜂》 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁 :还在睡觉突然接到一个小哥哥电话“x...

小小编辑
今天
218
8

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部