抽象类

继承抽象类的(非抽象类)子类必须要实现抽象类的所有抽象方法

提升开发效率,接口比抽象类更加实用

抽象类不能用new实例化

抽象类中可以写普通方法,抽象方法必须在抽象类中

public abstract class aaaa {
    public abstract void aaaaaaaa();	//只有方法的名字,没有方法的实现
}

java中的类不能多继承,但是接口可以多继承

接口

只有规范(方法名),自己无法写方法(纯抽象)

接口的本质是契约

  • 关键字 interface

类文件创建,更改class为interface

public interface iii {
    void run();
}
  • 定义的方法默认为 public abstract

  • 定义的属性默认都是常量

  • 接口中所有的定义前都有默认关键字 public abstract,private和protected都不允许

  • 类可以实现接口 implements

public class aaaa implements iii {
    public void run(){};//实现接口的类必须要重写接口的所有方法
}

内部类

public class aaaa {
    public void run(){};

    public class Inner{
        public void in(){
            System.out.println("inner in");
        };
    }

    public static void main(String[] args) {
        aaaa a = new aaaa();
        aaaa.Inner i = a.new Inner();//注意要在 外部.new
    }
}
package scanner;

public class aaaa {

    public void dd(){
        class A{}//局部内部类
    }
}

class A{}//一个java文件可以有多个类,但只能有一个public修饰的类