되어 super()
부모 생성자를 호출하는 데 사용? 설명하십시오 super()
.
답변
super()
인수없이 부모 생성자를 호출합니다.
인수와 함께 사용할 수도 있습니다. 즉 super(argument1)
, 유형의 매개 변수 1을 허용하는 생성자를 호출합니다.argument1
(있는 경우) .
또한 부모로부터 메소드를 호출하는 데 사용될 수 있습니다. 즉super.aMethod()
더 많은 정보와 튜토리얼은 여기
답변
몇 가지 사실 :
super()
직계 부모를 호출하는 데 사용됩니다.super()
인스턴스 멤버, 즉 인스턴스 변수 및 인스턴스 메소드와 함께 사용할 수 있습니다.super()
생성자 내에서 사용하여 부모 클래스의 생성자를 호출 할 수 있습니다.
자, 이제이 지점을 실제로 구현해 봅시다 super()
.
프로그램 1과 2의 차이점을 확인하십시오. 여기서, 프로그램 2 super()
는 Java에서 첫 번째 진술을 증명합니다 .
프로그램 1
class Base
{
int a = 100;
}
class Sup1 extends Base
{
int a = 200;
void Show()
{
System.out.println(a);
System.out.println(a);
}
public static void main(String[] args)
{
new Sup1().Show();
}
}
산출:
(200)
(200)
이제 프로그램 2를 확인하고 주요 차이점을 찾아보십시오.
프로그램 2
class Base
{
int a = 100;
}
class Sup2 extends Base
{
int a = 200;
void Show()
{
System.out.println(super.a);
System.out.println(a);
}
public static void main(String[] args)
{
new Sup2().Show();
}
}
산출:
(100)
(200)
프로그램 1에서 출력은 파생 클래스에만있었습니다. 기본 클래스 나 부모 클래스의 변수를 인쇄 할 수 없습니다. 그러나 2 프로그램에, 우리가 사용한 super()
변수 a
의 출력을 인쇄하고, 대신에 변수의 값을 인쇄 중에 a
유도 된 클래스를, 그 변수의 값을 출력 a
기본 클래스를. 따라서 super()
직계 부모에게 전화하는 데 사용됩니다.
이제 프로그램 3과 프로그램 4의 차이점을 확인하십시오.
프로그램 3
class Base
{
int a = 100;
void Show()
{
System.out.println(a);
}
}
class Sup3 extends Base
{
int a = 200;
void Show()
{
System.out.println(a);
}
public static void Main(String[] args)
{
new Sup3().Show();
}
}
산출:
200
여기서 출력은 200입니다. 호출 할 때 파생 클래스 Show()
의 Show()
함수가 호출되었습니다. 그러나 Show()
부모 클래스 의 함수 를 호출하려면 어떻게해야 합니까? 해결책은 프로그램 4를 확인하십시오.
프로그램 4
class Base
{
int a = 100;
void Show()
{
System.out.println(a);
}
}
class Sup4 extends Base
{
int a = 200;
void Show()
{
super.Show();
System.out.println(a);
}
public static void Main(String[] args)
{
new Sup4().Show();
}
}
산출:
(100)
(200)
여기서 우리는 두 개의 출력, 100 및 200을하면 점점 Show()
파생 클래스의 함수가 호출, 그것은 먼저 호출 Show()
때문에 내부, 부모 클래스의 기능을 Show()
파생 클래스의 기능을, 우리는라고 Show()
바꾸어 부모 클래스의 기능을 super
함수 이름 앞 의 키워드
답변
소스 기사 : Java : super () 호출
예. super(...)
수퍼 클래스의 생성자를 호출합니다.
삽화:
독립형 예 :
class Animal {
public Animal(String arg) {
System.out.println("Constructing an animal: " + arg);
}
}
class Dog extends Animal {
public Dog() {
super("From Dog constructor");
System.out.println("Constructing a dog.");
}
}
public class Test {
public static void main(String[] a) {
new Dog();
}
}
인쇄물:
Constructing an animal: From Dog constructor
Constructing a dog.
답변
부모 생성자를 호출하는 데 super ()가 사용됩니까?
예.
Pls는 Super ()에 대해 설명합니다.
super()
super
매개 변수없는 부모 생성자를 호출하는 키워드 의 특별한 사용입니다 . 일반적으로 super
키워드는 재정의 된 메서드를 호출하거나 숨겨진 필드에 액세스하거나 수퍼 클래스의 생성자를 호출하는 데 사용할 수 있습니다.
공식 튜토리얼 은 다음과 같습니다.
답변
인수가없는 수퍼 생성자를 호출하면 화면 공간과 프로그래머 시간이 낭비됩니다. 컴파일러는 작성 여부에 관계없이 정확히 동일한 코드를 생성합니다.
class Explicit() {
Explicit() {
super();
}
}
class Implicit {
Implicit() {
}
}
답변
예, super()
(소문자)는 부모 클래스의 생성자를 호출합니다. 인수를 포함 할 수 있습니다.super(foo, bar)
super
메소드에서 슈퍼 클래스의 메소드를 호출하는 데 사용할 수 있는 키워드 도 있습니다.
에서 “자바 슈퍼”결과에 대한 빠른 구글 이
답변
맞아요. Super는 부모 생성자를 호출하는 데 사용됩니다. 따라서 이와 같은 코드 블록이 있다고 가정하십시오.
class A{
int n;
public A(int x){
n = x;
}
}
class B extends A{
int m;
public B(int x, int y){
super(x);
m = y;
}
}
그런 다음 멤버 변수 n에 값을 할당 할 수 있습니다.