一、抽象类
1.抽象方法
概念:使用abstract修饰, 只有返回的声明没有方法的实现
语法:访问修饰符 abstract 返回值类型 方法名称(参数列表);
注意:抽象方法只能在抽象类中
2.抽象类
概念:用abstract修饰的的类就是抽象类
抽象类中成员:
a.成员变量
b.构造方法
c.方法:普通的成员方法 、抽象方法 、静态方法
注意点:
①抽象类不能实例化对象 ,一般是作为父类
②抽象类的构造方法一般用于给子类调用
③子类必须继承父类中所有的抽象方法
④如果子类也是抽象类,就可以不用继承父类的抽象方法
二、接口
1.概念:就是定义一个规范
规范:就是定义一些抽象方法
2.定义接口
语法:访问修饰符 interface 接口的名称{}
3.成员:
a.接口中变量都默认加上public static final 来进行修饰
b.接口中不能有构造方法
c.jdk1.8之前:接口中只能有抽象方法
jdk1.8之后:接口中可以有静态的方法 也可以有默认的方法
jdk1.9之后:接口中可以有私有的方法
三、实现类
1.概念:实现接口的类就是实现类
2.单实现:只实现一个接口
语法:访问修饰符 class 类名 implements 接口的名称{}
多实现:实现多个接口
语法:访问修饰符 class 类名 implements 接口1的名称,接口2的名称{}
实现类必须实现接口中所有抽象方法
四、接口与接口、类与类、接口与类之间的关系
1.接口与接口:可以单继承也可以多继承 也可以多层继承
2.接口与类:单实现与多实现
3.类与类之间:单继承、多层继承不能多继承、
五、代码块
1.概念:编写在{}中的就是代码块
2.分类:局部代码块、构造代码块、静态代码块
六、内部类
1.概念:定义在类中的类或者定义在方法之中的类
2.分类:
①成员内部类:普通成员内部类、私有成员内部类、静态内部类
②局部内部类:定义在方法中的类
3.匿名内部类:没有名字的内部类
4.普通成员内部类:定义在类中
public class Outclass {
public class Innerclass{
}
}
内部类可以访问外部类中资源
外部类访问内部类资源需要先实例化对象
外部类以外访问内部类资源 必须实例化内部的对象
访问语法:外部类.内部类 对象名=new 外部类().new内部类()
5.私有成员内部类
访问修饰符 class Outclass{
private class innerclass{
}
}
外部类以外的类不能实例化内部类的对象
6.静态内部类
访问修饰符 class Outclass{
static class innerclass{
}
}
外部类之外的类访问内部类必须实例化内部类
语法:外部类.内部类 对象名=new 外部类.内部类();
7.局部内部类:定义在方法中的类
访问修饰符 返回值类型 方法的名称(){
class 类名{
}
}
外部类以外的内部不能直接访问方法内部类的资源 只能间接通过在方法中实例化内部类对象然后进行访问
8.匿名内部类:没有名称的内部类
本质:1.实例化接口就是实例化实现类 2.实例化抽象类 就是实例化子类对象