293讲!!(重要)继承本质、课堂练习、super使用
内容纲要

293讲!!(重要)继承本质、课堂练习、super使用

file

Q:当创建对象的时候 Son son = new Son( ); 内存的布局发生了什么?

file

!!!(重要)超重要的图

file

结果

file

课堂练习

    1. this( ); 的调用 和默认super(); 构造器的使用

file

    1. this(); 、 super(); 的使用:小心隐藏的super(); !!有点像递归。。。。。很像

file

package main.daytwo;

public class Test {
    public static void main(String[] args) {
        C c = new C();
    }
}

class A {
    public A() {
        System.out.println("A类无参构造器");
    }
}

class B extends A {
    public B() {
        System.out.println("B类无参构造器");
    }

    public B(String name1) {
        System.out.println(name1 + " B类有参构造器");
    }
}

class C extends B {
    public C() {
        this("Hello");
        System.out.println("我C类无参构造器");
    }

    public C(String name2) {
        super("hahah");
        System.out.println("C类有参构造器");
    }
}

file

file

!super细节

file

file

  • this 和super 调用方法顺序 (其实和this /super属性调用的机制一样)

file

file

file

1. 在静态方法中是不能使用this预定义对象引用的,即使其后边所操作的也是静态成员也不行.
因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在
2. 在问题之前先讲super的用法:
    1.super的用法跟this类似,this代表对本类对象的引用,指向本类已经创建的对象;而super代表对父类对象的引用,指向父类对象;
    2.静态优先于对象存在;
    3.由上面的1.和2.知:
    因为静态优先于对象存在,所以方法被静态修饰之后方法先存在,而方法里面要用到super指向的父类对象,但是所需的父类引用对象晚于该方法出现,也就是super所指向的对象没有,当然就会出错。
    综上,静态方法中不可以出现super关键字。
3. 首先你要明白对象和类的区别。
    this和super是属于对象范畴的东西,而静态方法是属于类范畴的东西
    所有的成员方法,都有一个默认的的参数this(即使是无参的方法),只要是成员方法,编译器就会给你加上this这个参数如:
    Class A中
    void method1(){}实际上是这样的--------> void method1(A this)
    void method2(int x){}实际上是这样的--------> void method2(A this, intx)
    而静态方法与对象无关,根本不能把对象的引用传到方法中,所以不能用this

4. 在一个类中定义一个方法为static,则为静态方法,那就是说,无需本类的对象即可调用此方法,调用一个静态方法就是“类名.方法名”
既然"无需本类的对象即可调用静态方法",而this和super关键字都是用于本类对象的-----调用静态方法无需本类的对象这句话很清楚表明:静态方法中不能用this和super关键字

5. 静态方法是存放在内存中的数据段里,this和super调用的是堆空间里的应用对象不能调用数据段区域里的数据,因此静态方法中不能用this和super关键字
6. 静态方法和静态类不属于单个对象,而是类的所有对象共享使用
而this代表当前对象

7.   东西只属于类,不属于任何对象,所以不能用THIS和SUPER。

[文章来源][https://www.cnblogs.com/uoar/p/7248955.html]

file

file

file

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇