java中super(java的异常处理两种方式, super(msg);什么意思啊)

:暂无数据 2026-07-09 05:20:01 :0

java中super(java的异常处理两种方式, super(msg);什么意思啊)

“java中super”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看java中super(java的异常处理两种方式, super(msg);什么意思啊)!

本文目录

java的异常处理两种方式, super(msg);什么意思啊

一、第一种定义方式,继承Exception类
public class MyFirstException extends Exception {
public MyFirstException() {
super();
}
public MyFirstException(String msg) {
super(msg);
}
public MyFirstException(String msg, Throwable cause) {
super(msg, cause);
}
public MyFirstException(Throwable cause) {
super(cause);
}
//自定义异常类的主要作用是区分异常发生的位置,当用户遇到异常时,
//根据异常名就可以知道哪里有异常,根据异常提示信息进行修改。
}
二、 第二种定义方式:继承Throwable 类
public class MySecondException extends Throwable {
public MySecondException() {
super();
}
public MySecondException(String msg) {
super(msg);
}
public MySecondException(String msg, Throwable cause) {
super(msg, cause);
}
public MySecondException(Throwable cause) {
super(cause);
}
}

JAVA中super的作用

super可作用是向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

super也有三种用法:

1、普通的直接引用

与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。

2、子类中的成员变量或方法与父类中的成员变量或方法同名。

3、引用构造函数

super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。

this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

扩展资料

super使用

示例:

class Country {

String name;

void value() {

name = "China";

}

}

class City extends Country {

String name;

void value() {

name = "Shanghai";

super.value();      //调用父类的方法

System.out.println(name);

System.out.println(super.name);

}  

public static void main(String args) {

City c=new City();

c.value();

}

}

java中super有什么作用呢

关键字super的作用如下:

(1)访问父类的构造函数:可以使用super0函数访问父类的构造函数,从而委托父类完成一些初始化的工作。

(2)访问父类的成员:如果子类重写了父类的某个方法,可以通过使用super关键字来引用父类的方法实现。

(3)this 和super不能同时出现在一个构造函数里面,因为this 必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。

总结:super 可用于引用直接父类实例变量。super 可用于调用直接父类方法。super() 可用于调用直接父类构造函数;在Java中代表当前对象的直接父类对象的引用。

在同一个类中用super关键字,调用其它构造函数,他一般也是在构造方法中,为了避免代码重复,直接调用已经写过的代码,你要注意的是他的写法,即super(构造方法名),而且必须是这个构造方法的第一句。

java中Super是什么意思

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

super是引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名。

super在java中是什么意思

super是Java中的关键字,它表示父类或父接口。在一个类中,我们可以使用super关键字来调用父类中的属性或方法。例如,当我们需要调用父类中的构造方法时,我们可以使用super关键字来实现。在这种情况下,我们可以使用子类的构造方法来调用父类的构造方法。


super关键字也可以用来访问父类中被子类覆盖的方法。当子类需要覆盖父类的方法时,如果子类需要在覆盖方法的基础上增加额外的功能,我们可以使用super关键字来调用父类中被覆盖的方法,然后在该方法的基础上增加额外的功能。


在Java中,super同时也指代了一个特殊的对象。当我们使用super关键字来调用父类中的方法时,实际上会使用一个super对象来调用该方法。该对象是一个由编译器生成的对象,它与子类对象相关联,并且包含了父类中所有的属性和方法。这个super对象是一种实现多态性的机制,在Java中使用广泛。

Java中super是什么意思

super在java的子类中指代父类引用

java中,super的几种用法:

1、子类的构造函数如果要引用super的话,必须把super放在函数的首位

class Base {
    Base() {
        System.out.println("Base");
    }
}
public class Checket extends Base {
    Checket() {
        super();//调用父类的构造方法,一定要放在方法的首个语句
        System.out.println("Checket");
    }
 
    public static void main(String argv) {
        Checket c = new Checket();
    }
}

如果想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了super继承父类的构造方法。那么以前所做的修改就都回到以前了,就是说又成了父类的构造方法了。

2、在Java中,有时还会遇到子类中的成员变量或方法与超类(有时也称父类)中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了超类的成员变量或方法,但是我们如果想要使用超类中的这个成员变量或方法,就需要用到super.

class Country {
    String name;
 
    void value() {
        name = "China";
    }
}
 
class City extends Country {
    String name;
 
    void value() {
        name = "Hefei";
        super.value();//不调用此方法时,super.name返回的是父类的成员变量的值null
        System.out.println(name);
        System.out.println(super.name);
    }
 
    public static void main(String args) {
        City c=new City();
        c.value();
    }
}

为了在子类中引用父类中的成员变量name和方法value(),在代码中使用了super、super.name和super.value(),若不调用super.value()时,super.name返回父类成员变量默认值null,调用此方法时,super.value()方法把成员变量name赋值为China,再利用super.name调用父类的成员变量的值。

另外,要注意的是super.name调用的是成员变量的

class Country {
    String name="xianfan";
 
    String value(String name) {
        name = "China";
        return name;
    }
}
 
class City extends Country {
    String name;
 
    String value(String name) {
        name = "Hefei";
        super.value("失败");//不调用此方法时,super.name返回的是父类的成员变量的值null
        System.out.println(name);
        System.out.println(super.name);
        return name;
    }
 
    public static void main(String args) {
        City c=new City();
        c.value("成功");
    }
}

结果为:Hefei

xianfan

此时,super.name返回的值是父类成员变量的值xianfan,而此时的super.value()方法是不起作用的。

3、用super直接传递参数:

class Person {
    public static void prt(String s) {
        System.out.println(s);
    }
 
    Person() {
        prt("A Person.");
    }
 
    Person(String name) {
        prt("A person name is:" + name);
    }
}
 
public class Chinese extends Person {
    Chinese() {
        super(); // 调用父类构造函数(1)
        prt("A chinese.");// (4)
    }
 
    Chinese(String name) {
        super(name);// 调用父类具有相同形参的构造函数(2)
        prt("his name is:" + name);
    }
 
    Chinese(String name, int age) {
        this(name);// 调用当前具有相同形参的构造函数(3)
        prt("his age is:" + age);
    }
 
    public static void main(String args) {
        Chinese cn = new Chinese();
        cn = new Chinese("kevin");
        cn = new Chinese("kevin", 22);
    }
}

结果为:A Person.

A chinese.

A person name is:kevin

his name is:kevin

A person name is:kevin

his name is:kevin

his age is:22

在这段程序中,this和super不再是像以前那样用“.”连接一个方法或成员,而是直接在其后跟上适当的参数,因此它的意义也就有了变化。super后加参数的是用来调用父类中具有相同形式的构造函数,如1和2处。this后加参数则调用的是当前具有相同参数的构造函数,如3处。当然,在Chinese的各个重载构造函数中,this和super在一般方法中的各种用法也仍可使用,比如4处,你可以将它替换为“this.prt”(因为它继承了父类中的那个方法)或者是“super.prt”(因为它是父类中的方法且可被子类访问),它照样可以正确运行。

java的super是什么意思

Java中的super是一个关键字,它表示父类或者父类的成员。通过super我们可以访问父类中的方法、变量和构造函数。在子类中调用方法或者变量时,如果与父类中的同名方法或变量发生冲突,我们可以通过super关键字来区分它们。super关键字可以算是Java继承的一个重要标志,它实现了Java中的多层继承机制,使得Java面向对象特性更加完善。


在使用super时,需要注意以下几点。首先,使用super调用构造函数时,必须要放在子类构造函数的第一行,同时,当子类构造函数没有指明调用哪个父类构造函数时,Java默认会调用父类的无参数构造函数。其次,父类私有成员无法通过super关键字访问,因为它们不能被继承。最后,当子类方法中使用super调用父类的方法时,注意不要出现死循环情况。子类的方法中已经重写了父类的方法,如果再通过super调用父类方法,就会出现无限递归的情况。


除了使用super来访问父类的成员外,还可以使用super来调用父类的构造函数,即通过super在子类构造函数中调用父类构造函数,以完成对父类初始化的操作。这种方式非常常用,因为在子类构造函数中需要对父类的成员进行初始化时,我们可以使用super来完成这部分工作,避免了对父类成员使用赋值语句的繁琐操作。此外,如果父类没有提供默认构造函数,那么在子类构造函数中使用super关键字来调用父类相应的构造函数,就可以保证子类正确地完成对父类的初始化操作。

Java小程序pain为什么好多程序都要用到,super.paint(g);是什么意思,刚学JAVA谢谢麻烦帮我解析下面例子

super是代表父类的意思。
super.paint(g)是代表调用父类JApplet的paint方法
在JApplet容器中把g对象画上。
显示出来。

文章分享结束,java中super和java的异常处理两种方式, super(msg);什么意思啊的答案你都知道了吗?欢迎再次光临本站哦!

java中super(java的异常处理两种方式, super(msg);什么意思啊)

本文编辑:admin

更多文章:


百度站长改版链接多跳一错误(网站更换了https协议,但是站长平台总是审核不过)

百度站长改版链接多跳一错误(网站更换了https协议,但是站长平台总是审核不过)

大家好,如果您还对百度站长改版链接多跳一错误不太了解,没有关系,今天就由本站为大家分享百度站长改版链接多跳一错误的知识,包括网站更换了https协议,但是站长平台总是审核不过的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月15日 08:30

天津医科大学2021研究生招生(天津医学院2023录取分数线)

天津医科大学2021研究生招生(天津医学院2023录取分数线)

其实天津医科大学2021研究生招生的问题并不复杂,但是又很多的朋友都不太了解天津医学院2023录取分数线,因此呢,今天小编就来为大家分享天津医科大学2021研究生招生的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月15日 05:10

天津小客车摇号查询结果(天津摇号结果查询怎么查询)

天津小客车摇号查询结果(天津摇号结果查询怎么查询)

本篇文章给大家谈谈天津小客车摇号查询结果,以及天津摇号结果查询怎么查询对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月15日 00:20

亚马逊云服务器永久免费(亚马逊云可以注册域名吗)

亚马逊云服务器永久免费(亚马逊云可以注册域名吗)

其实亚马逊云服务器永久免费的问题并不复杂,但是又很多的朋友都不太了解亚马逊云可以注册域名吗,因此呢,今天小编就来为大家分享亚马逊云服务器永久免费的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月14日 23:30

海外市场推广(要做海外品牌推广,这几点很重要)

海外市场推广(要做海外品牌推广,这几点很重要)

“海外市场推广”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看海外市场推广(要做海外品牌推广,这几点很重要)!

2026年10月14日 22:50

天津民办大专学校有哪些(天津有哪些大专)

天津民办大专学校有哪些(天津有哪些大专)

大家好,如果您还对天津民办大专学校有哪些不太了解,没有关系,今天就由本站为大家分享天津民办大专学校有哪些的知识,包括天津有哪些大专的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月14日 20:00

经济双循环是什么时候提出的(内外双循环是什么时候提出的)

经济双循环是什么时候提出的(内外双循环是什么时候提出的)

“经济双循环是什么时候提出的”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看经济双循环是什么时候提出的(内外双循环是什么时候提出的)!

2026年10月14日 19:30

根服务器价格(ipv6为何在中国有根服务器)

根服务器价格(ipv6为何在中国有根服务器)

这篇文章给大家聊聊关于根服务器价格,以及ipv6为何在中国有根服务器对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月14日 16:50

域名被别人备案了(我们网站域名被人备案了怎么办)

域名被别人备案了(我们网站域名被人备案了怎么办)

大家好,今天小编来为大家解答以下的问题,关于域名被别人备案了,我们网站域名被人备案了怎么办这个很多人还不知道,现在让我们一起来看看吧!

2026年10月14日 15:40

apache服务器的默认端口是(apache服务器提供服务的标准端口是)

apache服务器的默认端口是(apache服务器提供服务的标准端口是)

大家好,如果您还对apache服务器的默认端口是不太了解,没有关系,今天就由本站为大家分享apache服务器的默认端口是的知识,包括apache服务器提供服务的标准端口是的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月14日 14:10

最近更新

热刺vs马赛比赛(热刺赛程比分)
2026-10-15 09:10:01 浏览:0
热门文章

标签列表