宁波企业网站搭建极速建站,ftp上传安装wordpress,常用来做网站首业的是,正确的网址格式例子前面我们已经说明了什么是继承#xff1f;继承的好处弊端等#xff0c;不清楚的可参照链接 java 继承#xff08;上#xff09;-CSDN博客
本篇文章主要理解 继承中变量#xff0c;构造方法#xff0c;成员方法的访问特点。 1、继承中变量的访问特点
1.1 代码实现
不看…前面我们已经说明了什么是继承继承的好处弊端等不清楚的可参照链接 java 继承上-CSDN博客
本篇文章主要理解 继承中变量构造方法成员方法的访问特点。 1、继承中变量的访问特点
1.1 代码实现
不看结果尝试看代码。看下是否知道输出的age是什么
1Fu类的代码实现
public class Fu {int age 40;
}
2Zi类的代码实现
public class Zi extends Fu{int height 175;int age 30;public void method(){int age 20;System.out.println(height);System.out.println(age);}
}
3Test类的代码实现
public class Test {public static void main(String[] args) {Zi z new Zi();z.method();}
}
4运行结果 1.2 上面运行结果分析在子类方法中访问变量的次序遵循“就近原则”也就是会按下面的次序依次查找。
1子类局部范围找
2子类成员范围找
3父类成员范围找
4如果都没有就报错不考虑父亲的父亲...。
2、继承中构造方法的访问特点
2.1 代码实现
1Fu类的代码实现
public class Fu{public Fu() {System.out.println(父类中无参构造方法被调用。。);}public Fu(int age) {System.out.println(父类中带参构造方法被调用。。);}
}2Zi类的代码实现
public class Zi extends Fu{public Zi(){System.out.println(子类中无参构造方法被调用。。);}public Zi(int age){System.out.println(子类中带参构造方法被调用。。);}
}
2.2 代码分析
1通过Zi z new Zi(); 去调用。
public class Test {public static void main(String[] args) {Zi z new Zi();}
}
运行结果 特点子类中所有的构造方法默认都会访问父类中无参的构造方法。
为什么呢?
因为子类会继承父类中的数据可能还会使用父类的数据。所以子类初始化之前一定要先完成父类数据的初始化。每一个子类构造方法的第一条语句默认都是super()也就是说下面的两个类是等价的。 2如果Fu类只有带参构造方法呢
Fu类 Zi类就会报错 原因分析这是因为父类中有了带参的构造方法的话它会把无参构造方法覆盖掉也就是说它就不会有默认的无参构造方法了。那怎么解决呢很简单给super加参数调用父类的有参构造方法即可。 2.3 特点总结
1子类中所有的构造方法默认都会访问父类中无参的构造方法
2如果父类中没有无参构造方法只有带参构造方法该怎么办呢? ① 通过使用super关键字去显示的调用父类的带参构造方法 ② 在父类中自己提供一个无参构造方法 ③ 推荐自己给出无参构造方法。
3、继承中成员方法的访问特点
3.1 代码实现
1Fu类的代码实现
public class Fu {public void show() {System.out.println(父类的show方法被调用。。);}public void method() {System.out.println(父类的method方法被调用。。);}
}
2Zi类的代码实现
public class Zi extends Fu {public void method() {System.out.println(子类中method方法被调用。。);}
}3Test类的代码实现
public class Test {public static void main(String[] args) {Zi z new Zi();z.method();z.show();}
}
4运行结果 3.2 访问特点
通过子类对象访问一个方法过程
1子类成员范围找
2父类成员范围找
3如果都没有就报错不考虑父亲的父亲.. 如果想直接访问父类的方法可以通过super关键字。 本文为学习笔记所参考文章均已附上链接若有疑问请私信
创作不易如果对你有点帮助的话麻烦点个赞支持一下
新手小白欢迎留言指正