-
继承的初始化顺序
1. 初始化父类再初始子类
2. 先执行初始化对象中属性,再执行构造方法中的初始化
查看全部 -
向上类型转换,是小类型到大类型的转换,向下类型转换是强制类型转换,是大类型到小类型。可以使用instanceof运算符,来解决引用对象的类型。
比如可以向上类型转换,animal animal1=dog,但是不能dog dog1=animal。,但可以在animal前面加上一个小括号,里面加上子类的类型,比如(dog)animal,就可以了。
查看全部 -
多态分为引用的多态和方法的多态。引用多态是指父类的引用可以指向本类的对象也可以指向子类的对象。但是子类创建对象不可以指向父类,比如animal是父类,dog是子类,那么animal obj1=new animal,或者animal obj2=new dog是可以的,但是dog obj3=new animal是不可以的
方法多态是指创建的是父类的本类对象,那么调用方法的时候是父类中的方法,父类如果指向的是子类的对象,那么调用的就是子类的方法,如果子类的方法没有重写,那么就是继承的方法。
在子类中创建父类没有的方法,并不是继承来的,在主函数中不能通过父类的引用调用这个子类独有的方法,是不允许的。
查看全部 -
equals()方法比较的对象的的引用是否指向同一块内存地址。
一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。
查看全部 -
object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这类默认继承object类。
object类中的方法,适合所有子类。
tostring方法在object类里面定义tostring方法的时候返回的对象的哈希码。可以通过重写tostring()方法表现出对象的属性。
查看全部 -
需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
------------------
程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
查看全部 -
要注意哦:静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!~~
查看全部 -
成员变量和局部变量的区别
初始值不同
java会给成员变量一个初始值
java不会给局部变量赋予初始值
两类变量同名时,局部变量具有更高的优先级
查看全部 -
子类的构造过程中必须调用其父类的构造方法。
如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类的无参方法。
如果显式调用构造方法,必须在子类的构造方法的第一行
如果子类既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
查看全部 -
创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
查看全部 -
1.内部类可以访问外部类的任意访问控制符
2.定义成员内部类后,必须先new外部类对象再new内部类对象,不能内部类 对象名=外部类对象.new 内部类();
3.外部类名.this关键字可以让内部类访问外部类成员变量
4.new内部类对象会生成两个class文件一个外部类名,一个外部类名$内部类名
查看全部 -
final修饰类,该类不允许被继承
修饰方法,不允许被覆盖,修饰属性,则不会进行隐式的初始化或在构造方法中赋值。修饰变量,则该变量只能赋值一次,即为常量。
查看全部 -
class组织单元查看全部
-
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
查看全部 -
3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
查看全部
举报