1.继承:
1)避免 代码重复
2)通过extends关键字实现继承
3)子类继承父类后,将具有本类的成员和父类的成员
4)子类只能继承一个父类,但是父类可以有多个子类
5)构造子类之前必须先构造父类,通过super(),默认添加在子类构造的第一行
2.多态:多种形态,在继承的基础上,提高代码的可维护行、可扩展性
1)一个类型指向不同的对象时,有不同的实现
2)同一个对象造型成不同的类型时,有不同的功能
3.向上造型:父类的引用指向子类的对象
强制转型:父类到子类,前提,对象是子类;到接口,前提,对象实现了该接口。通过instanceof避免转型失败
4.static:
1)修饰的成员变量为静态变量,属于类,存在于方法区,只有一份,为所有对象共有
2)修饰的方法,没有隐式this传递,只与参数有关,与对象无关,常常通过类名点访问
3)修饰的代码块,属于类,在类加载时加载,存在于方法区,只加载一次,一般用于加载静态资源(图片、音频、视频等)
5.final:
1)修饰变量----不能被修改
2)修饰方法----不能被重写
3)修饰类-------不能被继承
6.abstract:
1)抽象方法,没有方法体,由abstract修饰
2)抽象类,由abstract修饰,可以包括抽象方法和普通方法
3)有抽象方法的类一定是抽象类,类中没有抽象方法也可以声明为抽象类
4)抽象类一般需要继承,在子类中要重写所有的抽象方法
5)抽象类的意义:
-提供一个共有的类型,封装共有的特征
-提供特定的入口(方法名)
7.接口:
1)提供一个标准、规范
2)只能包含常量(public static final 修饰)和抽象方法(public abstract修饰)
3)通过implements关键字实现,实现类要重写所有的抽象方法
4)不能被实例化
5)实现类可以实现多个接口,由逗号隔开
6)若继承(extends)和实现(implements)都用,必须先继承后实现
7)接口之间可以继承
8.内部类:
1)一个类(Inner)定义在另一个类(Outer)中
2)通常只服务于Outer,对外不可见,一般在Outer中实例化
3)可直接访问Outer的成员
4)有隐式(Outer类名.this)的引用指向Outer的成员
9.匿名内部类:若在一个程序中只需要一个类的对象(通常该类为子类或实现类),且在创建完后就失去价值,这个类可以不用命名,称之为匿名内部类
语法:Inter i = new Inter(){...};
10.重写与重载的区别:
1)重写发生在父子类中,子类与父类的方法签名相同;重载发生在一个类中,方法名相同但参数列表不同
2)重载绑定编译器,看类型调用方法;重写绑定运行期,看对象调用方法