索引
问题
关于继承方面(this,super)
知识点补漏
类修饰符;初始化块修饰符;方法重写要求;
进度总结
(19.02.20;2.01;163/879)
待解决问题
(共1个)
1.问题:
public class Sub extends Base
{
public void test()
{
System.out.println("方法被子类重写");//1号输出
}
public static void main(String[] args)
{
Sub s=new Sub();
}
}
class Base extends Base2{
public Base()
{
test();
super.test();
}
public void test()
{
System.out.println("方法被父类重写");//2号输出
}
}
class Base2{
public void test()
{
System.out.println("方法被父类的父类Base2类重写");//3号输出
}
}
继承问题:
这里的输出为什么是1号输出和3号输出?不应该是1和2或者2和3吗?
知识点补漏
1.Java中类的修饰符:
默认修饰符:class前面没有加任何的访问修饰符,这个类只能被同一个包中的类访问或引用。
public: 可以被任何对象访问,一个程序的主类必须是公共类。且一个Java文件下只能有一个,且公开类名字须与Java文件名相同。
abstract:抽象类,没有实现的方法,需要子类提供方法实现。
final:非继承类(最终类),不能被其它类继承。
2.Java中初始化块的修饰符:
默认修饰符:每次Java创建对象时,在当前类中,初始化顺序在系统为所有实例变量分配内存之后,与声明实例变量时指定的初始值相同,先于构造器指定的初始值。
static:第一次加载该类时,执行一次。
3.方法的重写需要满足以下三个要求:
1.”==”:方法名、形参列表相同。
2.”<=”:
返回值类型和声明异常类型,子类小于等于父类。
3.”>=”:访问权限,子类大于等于父类。
进度总结
目前Java第6章面向对象
练习耗时出乎意料的长,暴露了我的一些薄弱点,之后几章会放慢速度。
原先写博客的方法太费时间了,而且意义也不大,因此改成这样的。以后回看也更有价值。