interface
-
Classe ordinária: apenas implementação concreta
-
Classe abstrata: Tanto a implementação quanto as especificações específicas (métodos abstratos) estão disponíveis!
-
Interface: apenas normas! Não é possível escrever métodos sozinho ~ Restrições profissionais! Separação de restrições e implementação: programação orientada a interface
-
A interface é a especificação, que define um conjunto de regras, que incorpora a ideia de "se você ... você deve ser capaz de ..." no mundo real. Se você é um anjo, você deve ser capaz de voar. Se você é um carro, deve saber correr. Se você é uma pessoa boa, deve matar a pessoa má; se for uma pessoa má, deve intimidar a pessoa boa. A essência da interface é um contrato, assim como nossa lei humana. Todos irão acatá-lo depois de formulado.
-
A essência do OO é a abstração de objetos e a interface que melhor reflete isso. Por que discutimos os padrões de projeto são apenas para linguagens com recursos de abstração (como c ++, java. C #, etc.), porque os padrões de projeto estudados são, na verdade, como abstrair razoavelmente.
A palavra-chave para declarar uma classe é class, e a palavra-chave para declarar uma interface é 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();
}