Java 面向对象 之 接口 interface

简介:

http://www.verejava.com/?id=16992815279749

/**
    知识点: 接口 interface (重点中的重点)  面向接口的编程
        接口的定义: 接口就是一个约定

    题目: 主席说要建立和谐社会,温家宝说要为人民服务

    思路:
        1. 抽象出类: 主席(ChairMan),  省长(Governer)
        2. 找出关系: 各省省长传达并实现  主席讲话方针
*/
/**
    注意:
        1. 声明一个接口关键字为 interface
        2. 接口中不允许定义方法的实现,只能是声明, 跟抽象类有所不同, 抽象类是
            允许定义具体方法的.  所以接口有的时候也称为特殊的抽象类
        3. 接口中方法的声明可以省略关键字 abstract ,抽象类中的抽象方法不能省略
        4. 接口中方法默认都是public 的
        5. 接口中的属性都是静态常量  static final 关键字可以省略,接口中属性默认
           是public 的并且可以省略public ,不允许有private,protected 关键字修饰
        6. 实现接口的类用关键字 implements 
        7. 实现类中必须 实现接口中的所有声明方法, 跟抽象类一样
        8. 不能实例化接口, 必须有其实现类间接实例化, 跟抽象类一样
        9. 如果要实现多个接口用, 隔开, 并且实现类要实现所有接口的方法, 而
            抽象类不能多继承
        10. 接口可以继承多个接口, 抽象类不行(这个就是为什么流行用面向接口编程的原因)
        11. 类可以同时继承一个类和实现多个接口
*/
public class TestInterface {
    
    public static void main(String[] args) {
        //输出主席名称
        System.out.println(ChairMan.name);

        //实例化接口
        //ChairMan chair=new ChairMan();

        System.out.println("开各省大会了...");
        Governer g1 = new Governer("北京市市长");
        g1.buildHarmonyCommunity("教育");
        g1.serviceForPeople("慈善");

        Governer g2 = new Governer("河北省省长");
        g2.buildHarmonyCommunity("联谊晚会");
        g2.serviceForPeople("尊老爱幼");
        g2.service();
    }
}

interface ChairMan {
    String name = "主席";

    //声明要建立和谐社会
    public void buildHarmonyCommunity(String method);
}

interface PrimeMinister {
    String name = "总理";

    //声明为人民服务
    public void serviceForPeople(String method);
}

interface Leader extends ChairMan, PrimeMinister {
}

class LeiFeng {
    
    public void service() {
        System.out.println("全心全意为人民服务");
    }
}

class Governer extends LeiFeng implements Leader {
    
    private String name;//省长名

    public Governer(String name) {
        this.name = name;
    }

    //实现主席建立和谐社会的方针
    public void buildHarmonyCommunity(String method) {
        System.out.println(name + " 我们是通过 " + method + " 来实现和谐社会");
    }

    //实现总理为人民服务的方针
    public void serviceForPeople(String method) {
        System.out.println(name + " 我们是通过 " + method + " 来为人民服务的");
    }

    public String getName() {
        return this.name;
    }
}

http://www.verejava.com/?id=16992815279749

目录
相关文章
|
1天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
2天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
2天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
6 0
|
7天前
|
安全 Java 机器人
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
19 0
|
7天前
|
Java 开发者
探索 Java 的函数式接口和 Lambda 表达式
【4月更文挑战第19天】Java 中的函数式接口和 Lambda 表达式提供了简洁、灵活的编程方式。函数式接口有且仅有一个抽象方法,用于与 Lambda(一种匿名函数语法)配合,简化代码并增强可读性。Lambda 表达式的优点在于其简洁性和灵活性,常用于事件处理、过滤和排序等场景。使用时注意兼容性和变量作用域,它们能提高代码效率和可维护性。
|
8天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
14 0
Java接口中可以定义哪些方法?
|
10天前
|
设计模式 Java
Java接口与抽象类
Java接口与抽象类
17 0
|
10天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
14天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
35 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
14天前
|
存储 Java 编译器
对象的交响曲:深入理解Java面向对象的绝妙之处
对象的交响曲:深入理解Java面向对象的绝妙之处
46 0
对象的交响曲:深入理解Java面向对象的绝妙之处