JAVA学习4
继承 extends
JAVA中只支持单继承,没有多继承,可多层继承
JAVA中的所有类的顶级父类是Object类 若一个自行定义的类未继承其他类,编译器会无需指定会默认继承
super关键字 可以使用父类的内容
子类的返回值类型必须在逻辑上小于等于父类
子类重写父类方法时,访问权限子类必须大于等与父类 所谓访问权限就是public private protected 及空着不写
private私有方法不能在子类重写
static方法可以被子类继承,但不能被重写(override),只能被隐藏 即同名屏蔽
重写方法要加上@override注解 只是建议而非强制
父类的构造方法不能被子类继承,只能用super关键字调用 这一点与c++有区别
子类构造函数会默认调用super();
this()可以调用本类构造方法
如果子类中有多个构造方法时,不能用this()和this.互相调用,一定要预留一个调用父类的构造方法
如果构造方法上写了this(),就不能再写super了,JVM也不会自动添加super()
老版JDKthis()只能位于构造方法第一行
继承的内存分布
子类能调用/继承 构造方法 不继承 可用super()调用
成员变量 可以被子类继承 private修饰的可继承但无法调用
成员方法 虚方法可被继承
final和static可调用继承,不能重写
private修饰的既不可调用也不可继承
在.class文件在JVM方法区加载时 总是先父后子加载
方法重写:子类替换虚方法里面对应方法的内存值
虚方法表:JVM为每个类维护一张虚方法表,重写时子类会把表中对应位置替换成自己的方法地址
可用jps jhsdb hbsd获取变量及方法的内存地址 及其内值
查询内存时需要导入Scanner包 目的是为了程序不停止 以免方法调用完毕,内存被清理
明天打算学习一些类还有接口 ,另外我也在接触一些硬件知识,所以有时候时间有点紧一些学习内容也不适合发在这里,其实每天都在做事,只不过可能两天打鱼三天晒网,前几天一直在学JAVA,
最近一周多一直在学习江科大的51开发板基础,认识了一些元器件,能用软件去操控硬件去做一些简单操作,目前课听了三分之二,打算学完学stm32基础,趁大一还早尝试去多接触一些东西,为以后选方向做参考


浙公网安备 33010602011771号