JDK中常用的包
1.java.lang:包含一些Java语言的核心类,如Object,String,Math等,自动导入不需要import
2.java.net:包含执行与网络相关操作的类
3.java.io:包含能提供多种输入\输出的类
4.java.util:包含一些使用工具类,例如日期类
访问修饰符
1.public:任何情况能挎包
2.protected:同一包下都好使,子类继承父类之后,实例化子类可以跨包
3.defalut:同一包下都好使,跨包不好使
4.private:只有自己能看到
static:静态
static可以修饰变量,方法,内部类
static可以用在共同拥有的属性,方法,且不经常改变
static修饰的成员就是类成员,类成员属于整个类,而不是某个对象
static适用场景:使用大段对静态成员进行初始化
代码执行优先级:层序>静态代码块>继承>代码块>构造器>成员方法
final:最终的
final方法不能被覆盖(重写)
final值不可被修改
final类不能被继承
abstract:抽象
抽象类实现的类为抽象类,实现的方法称为抽象方法
抽象类不能被实例化
抽象是一类对象的共同特征总结出来构造类的过程
必须满足如下条件之一,类才可以被定义为抽象类
1.类中至少有一个抽象方法
2.类继承了父类中的抽象方法,如果有抽象方法没有被实现,则该类必须是抽象类,实现类可以为该抽象类的子类
3.类实现了某个接口,但没有全部实现接口中的方法
以抽象类作为其子类的模板,从而避免了设计的随意性
1.抽象类可以有一般方法,也可以有抽象方法,有四个范围修饰符:private,default,protected,public
2.可以有变量,也可以有常量
3.抽象类和类的关系是继承
接口
接口比抽象类更抽象
接口可以实现多根继承
抽象类和接口的比较
抽象类
1.抽象类可以有一般方法,也可以有抽象方法,有四个范围修饰符:private,default,protected,public
2.可以有变量,也可以有常量
3.抽象类和类的关系是继承
接口
1.不允许有一般方法,都必须是抽象方法,所有的方法都是公共的
2.接口中的类型一定是常量(final不可被修改)
3.接口和类的关系是多实现
4.接口和接口的关系是继承
5.类与类和接口的关系:先继承,后实现
接口和接口之间是继承还是实现?
继承
可以继承:
是在设计接口时,需要完善java单继承所带来的不足的,允许多继承可以让子类更丰富,解决复杂问题
不可以实现
因为实现是指类对接口中方法等内容的实现操作,完成了接口中没有完成的方法,而如果使用接口去实现接口,与接口的特点冲突(接口要求所有的类必须完全实现,接口要求只能有抽象方法没有一般方法)
多态
对象的变量如果是多态的,一个类型为Aclass的变量既可以指向类型为Aclass的对象,又可以指向Aclass子类的对象
多态的类型
1.形参多态
2.返回值多态
3.运行时多态(虚方法调用)
Animal a=new Dog();
多态是指允许不同子类型对象对同一消息做出的不同反应
应用场合:
方法重载:编译时多态,也称前绑定
方法重写:运行时多态,也称后绑定
instanceof运算符
左侧变量是否是右侧变量的实现对象
可以理解成从属
dog instanceof animal