《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
System.out.println(“A类的构造方法!”);
}
}
class B extends A{
public B(){
super();//子类构造方法的第一行无论写不写都会默认存在super(),但不与this()共存;
System.out.println(“B类中的构造方法”);
}
}
2)重要结论: 当一个构造方法的第一行: 既没有this()又没有super()【this()和super()不能共存】的话,默认会有一个super(); 表示通过当前子类的构造方法调用父类的无参数构造方法,所以必须保证父类的无参构造方法是存在的;
public class Super {
public static void main(String[] args) {
new B();
}
}
class A{
public A() {
System.out.println(“A类的构造方法!”);
}
}
class B extends A{
public B(){
this(“zhangsan”);//此处调用下面有参的构造方法,同时也会触发super()调用父类的构造方法
System.out.println(“B类中的构造方法”);
}
public B(String name){
super();//无论如何,构造方法中都会存在一个super()
System.out.println(“B类中的有参数构造方法String”);
}
}
3)理解:super的作用:模拟现实世界要想有儿子,必须把父亲造出来;它代表的是当前对象(this)的父类型特征;
4)无论怎么折腾,父类的构造方法都会先执行;
不管创建什么对象,老祖宗的object类的无参构造方法一定会执行(object类中的构造方法是处于"栈顶部",最后调用最先结束)
5)super不是引用,不保存内存地址,也不指向任何对象,只是代表当前对象内部那一刻父类型的特征;
6)"super."后面不仅可以访问属性,还可以访问方法;
7)练习
public class Super {
public static void main(String[] args) {
new C();
}
}
/*class Object{
public Object(){
}
}*/
class A /extends Object/{//Object这个是Sun公司写的
public A() {
//有super()
System.out.println(“1”);
}
}
class B extends A{
public B(){
//有super()
System.out.println(“2”);
}
public B(String name){
//有super()
System.out.println(“3”);
}
}
class C extends B{
public C(){
this(“zhangsan”);
System.out.println(“4”);
}
public C(String name){
this(name,20);
System.out.println(“5”);
}
public C(String name,int age){
super(name);
System.out.println(“6”);
}
}
输出结果
3、何时使用,何时省略super关键字?
1)何时使用super(实参列表) 当子类中构造方法访问父类private修饰的实例变量时,此时无法访问,必须通过super(实参列表)调用父类的构造方法才可访问父类private修饰的实例变量;
2)初始化当前对象父类型的特征,并没有创新新的对象,实际上对象只创建一个;
3)"super."何时不能省略? 父中有,子中又有,如果想在在子中访问"父的特征"时不可以省略
public class Super {
public static void main(String[] args) {
Vip v = new Vip(“zhangsan”);
v.shopping();
}
}
class Customer{
String name;//相当于super.name
public Customer(){
}
public Customer(String name){
super();
this.name = name;
}
}
class Vip extends Customer{
String name;//相当于this.name 允许同名变量出现,此时的name为空,但super和this访问的name不同
public Vip(){
}
总结
面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。
我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
面试题及解析总结
大厂面试场景
知识点总结
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
中非常重要的一点。
面试题及解析总结
[外链图片转存中…(img-LqPHKPeQ-1714679871260)]
大厂面试场景
[外链图片转存中…(img-9jc7szq5-1714679871260)]
知识点总结
[外链图片转存中…(img-3hi3T1GD-1714679871261)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!