【java基础】

java
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img--50)(D:\桌面\bug集\扩展\-img\image-.png)]
成员变量:在使用前都经历过默认初始化赋值
局部变量:在使用前,必须要进行显示赋值!否则,编译不通过 。
a++的值为a
++a的值为a+1
数组的扩容:就是让源数组的+1、实现扩容
继承中
成员变量使用:变量中就近原则
成员方法使用:子类可以使用父类的所有非私有功能
构造方法使用:
构造方法可以被继承吗?答案是不可以原因:由于构造方法的语法要求,构造方法必须与类同名,不能再子类有一个父类名字的构造方法,天然不符合要求;构造方法不可以被调用而是由系统创建的时候调用
在子类的构造方法中,默认存在super(),表示调用父亲的无参构造也就是说,在创建子类对象时,会去调用子类的构造方法,继承后会先调用父类的构造方法,再去调用子类的构造方法
多态 多态是为了统一调用标准,向父类看齐;不可调用子类的特有方法;成员变量的使用都是父类的;方法的声明看的是父类,实际使用的是子类的;如果子类中有同名的静态方法,使用的是父类的 抽象类与接口
在Java中被关键字修饰的类称为抽象类,被关键字修饰的方法称为抽象方法,抽象方法只有方法的声明,没有方法体 。
抽象类的特点:
1.抽象类不能被实例化只能被继承;
1.抽象类不能被实例化,所以抽象类必须被继承,才能被使用 。
2.抽象类也可以和类一样,实现接口、多接口等,但抽象类区别于类,不需要实现接口下的所有方法 。用途:例如需要一个类,但是不需要有具体执行的代码,那么就可以把这个类写成抽象类 。
3.抽象类()被子类(Man)继承后,就会强迫子类重写抽象类中定义的抽象方法,除非子类也是抽象类 。
2.包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法; 3.抽象类中的抽象方法的修饰符只能为或者,默认为; 4.一个子类继承一个抽象类,则子类必须实现父类抽象方法,否则子类也必须定义为抽象类; 5.抽象类可以包含属性、方法、构造方法,但是构造方法不能用于实例化,主要用途是被子类调用 。
Java代码行执行顺序:1.静态块:用声明,JVM加载类时执行,仅执行一次2.构造块:类中直接用D定义,每次创建对象时执行3.执行顺序优先级:静态块>main()>构造块>构造方法4.静态块和静态属性优先执行,谁在前先执行谁 。
父类静态代码块》子类静态代码块》父类构造代码块》父类构造器》子类构造代码块》子类构造器
接口
Java中接口使用关键字修饰,特点为:
1.接口可以包含变量、方法;变量被隐士指定为final,方法被隐士指定为 (JDK1.8之前) ; 2.接口支持多继承,即一个接口可以多个接口,间接的解决了Java中类的单继承问题; 3.一个类可以实现多个接口; JDK1.8中对接口增加了新的特性:
(1)、默认方法( ): JDK 1.8允许给接口添加非抽象的方法实现,但必须使用关键字修饰;定义了的方法可以不被实现子类所实现,但只能被实现子类的对象调用;如果子类实现了多个接口,并且这些接口包含一样的默认方法,则子类必须重写默认方法;
(2) 、静态方法( ): JDK 1.8中允许使用关键字修饰一个方法,并提供实现,称为接口静态方法 。接口静态方法只能通过接口调用(接口名静态方法名) 。抽象类可以有默认的方法实现完全是抽象的 。接口根本不存在方法的实现 。抽象类中可以有已经实现了的方法,也可以有被修饰的方法(抽象方法),因为存在抽象方法,所以该类必须是抽象类 。但是接口要求只能包含抽象方法,抽象方法是指没有实现的方法 。相同点