接口
接口
- 普通类:只有具体方法
- 抽象类:具体实现和规范(抽象方法)都有!
- 接口: 只有规范! 自己无法写方法~专业的约束! 约束和实现的分离:面向接口编程!
- 接口就是规范,定义的是一组规则,“如果你是....则必须能.....”思想
- 接口的本质是规范
- 是面向对象的精髓,是对对象的抽象,最能体现的这一点的就是接口
- 声明类的关键字:class , 声明接口的关键字是:interface
接口的作用
- 约束
- 定义一些方法 让不同的人实现
- public abstract
- public static final
- 接口不能实例化 接口中没有构造方法
- implements可以实现多个接口
- 必须要重写接口中的方法
例题
首先创建一个接口,并定义方法
package opp.demo09;
//interface 关键字 接口都需要有实现类
public interface UserService {
//定义的属性
public static final int age =99;
//接口中的所有定义的方法其实都是抽象的 public abstract
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
然后在新类中继承实现
package opp.demo09;
//抽象类: extends
//类 可以实现接口 implement 接口
//实现接口的类 就需要重写接口中的方法
//多继承 利用接口实现多继承
public class UserServiceImpl implements UserService,TimeService{
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void update(String name) {
}
@Override
public void query(String name) {
}
@Override
public void timer() {
}
}
内部类
- 内部类就是在一个类的内部定义一个类:比如 在A类中定义B类 那么相对A类来说就称为内部类
而A类相当B类来说就是外部类
- 成员内部类
package opp.demo10;
//成员内部类
public class Outer {
private int id = 10;
public void out(){
System.out.println("这是外部类的方法");
}
public class Inner{ // public static class Inner 静态内部类
public void in(){
System.out.println("这是内部类的方法");
}
//获得外部类的私有属性
public void getID(){
System.out.println(id);
}
}
}
/*
package opp;
import opp.demo10.Outer;
public class Application03 {
public static void main(String[] args) {
Outer outer = new Outer();
//通过这个外部类来实例化内部类
Outer.Inner inner = outer.new Inner();
inner.in();
inner.getID();
}
}
*/
- 静态内部类
package opp.demo10;
//静态内部类
public class Outer01 {
private int id = 10;
public void out(){
System.out.println("这是外部类的方法");
}
public class Inner{ // public static class Inner 静态内部类
public void in() {
System.out.println("这是内部类的方法");
}
}
}
/*
package opp;
import opp.demo10.Outer;
public class Application03 {
public static void main(String[] args) {
Outer outer = new Outer();
}
}
*/
-
局部内部类
package opp.demo10; //匿名内部类 public class Outer02 { //局部内部类 class Inner{ public void in(){ } } } -
匿名内部类
浙公网安备 33010602011771号