接口
-
普通类: 只有具体实现
-
抽象类: 具体实现和规范(抽象方法)都有!
-
接口: 只有规范!自己无法写方法~专业的约束!约束和实现分离: 面向接口编程
-
接口就是规范,定义的是一组规则,体现了现实世界中“如果你…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。接口的本质是契约,就像我们人间的法律一样。 制定好后大家都遵守。
-
OO的精髓,是对对象的抽象,最能体现这一 点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++. java. c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。
声明类的关键字是class,声明接口的关键字是interface
package com.oop.Demo03;
//interfaca 接口
interface UserService
{
//接口中所有定义都是抽象的 默认隐藏了public abstract
public abstract void method();
void name (String name);
void add (String buffer);
void delete (String del);
void update (String upd);
void query (String que);
//在接口中定义属性都默认常量 public static final
public static final int year = 3;
int age = 10;
}
/*作用
1.约束
2.定义一些方法,让不同的人实现
3.都是 public abstract
4.都是 public static final的
5.接口不能实例化,因为根本没有构造器属于抽象的
6.interface可以多继承 必须要重写接口中的方法
*/
package com.oop.Demo03;
//类可以实现接口 implements a implements b,必须要重写方法
//实现了接口就要重写完接口中所有的类
//利用接口实现多线程
//,TextService
public class UserServiveImf implements UserService,TextService
{
@Override
public void method()
{
//实现这个方法
}
@Override
public void add(String buffer)
{
// 实现这个方法
}
@Override
public void delete(String del)
{
}
@Override
public void update(String upd)
{
}
@Override
public void query(String que)
{
}
@Override
public void name(String name)
{
}
@Override
public void text()
{
}
}
package com.oop.Demo03;
public interface TextService
{
void text();
}