类
继承:
enxtends 父类 implements 接口
代码复用
要点:
1.java里面只有单继承
2.子类可以继承父类的所有属性和方法,但是私有的不能被访问
3.创建一个子类对象,父类对象不会被创建
4.this和super不能一起使用
构造器:
1.默认情况下,类里面都有一个无参构造器
2.this调用本类当中其他构造器,必须写在第一行
3.当在子父类当中,创建一个子类对象时,在第一行会调用父类的无参构造器
当然也显示调用父类的其他构造器
super
- 代表父类对象 必须放在第一行
1.可以调用父类构造器
2.可以调用父类属性和方法(不能私有)
访问控制修饰符
- private protected 默认 public
private: 修饰的属性和行为只能在本类中使用
public: 修饰的属性和行为可以再所有类中被访问
protected
同包:修饰的行为和属性可以被访问
不同包: 除非是子类,才可以被访问
多态
- 同一个方法根据运行时不同对象产生不同结果
多态产生的条件
1.继承
2.方法重写
3.父类引用指向子类对象(向上转型)
实现技术:
- 动态绑定:根据运行时对象调用相应的方法
- 静态绑定:方法重载 编译期间根据参数来调用相应的方法
方法重写:存在继承当中子父类
1.返回类型 方法名 参数列表都是一样的
2.子类的访问控制可以大于等于父类的访问权限,父类不能是私有方法
3.子类异常继承父类异常(范围缩小)
数据类型转换
- instanceof 判断运行期间该对象的类型(父类型)
自动转换:父类引用指向子类对象
强制转换:
关键字
- static 修饰的变量可以被所有实例共享(直播在线人数统计)
1.修饰变量
a.该变量是属于类的,被所有对象实例所共享
b.可以通过(类名,变量名)访问,或者对变量实例访问
c.静态变量放在方法区里面,而成员变量实在堆里面
2.修饰方法
a.静态方法也是属于类的
b.类名.方法名来访问,或者被对象实例所访问
c. 普通方法是可以访问静态变量或者静态方法,静态方法是不可以调用普通方法或者变量
d.静态方法不能被重写
3.修饰类
内部类
- final
1.修饰变量
a.常量是不可以被修改的,对于引用类型指的是内存地址不能被修改
b.修饰成员变量必须要初始化,静态常量(static final int CUNNTER = 2;
)变量名一般大写
2.修饰方法
a.父类当中被final修饰的方法不能被重写
3.修饰类
- String 不能被继承
抽象类
- abstract 就是用来被继承的
1.抽象类本质上还是类
2.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类
3.抽象方法一定要被子类重写
接口
- 一个类现在需要继承多个类
1.解决多继承问题
2.面向接口继承
jdk1.8之前的语法
- 成员变量:默认修饰符都是public static final
- 成员方法:都是抽象方法,修饰符默认是public
3.实现 implements
4.接口与接口 extends