>  기사  >  백엔드 개발  >  다형성 멤버 특성

다형성 멤버 특성

伊谢尔伦
伊谢尔伦원래의
2016-11-26 10:14:59882검색

⒈다형성에서 비정적 멤버 함수의 특징:
①컴파일 시: 참조 변수가 속한 클래스에 호출 메서드가 있는지 참조합니다. 존재하면 컴파일이 통과되고, 그렇지 않으면 컴파일이 실패합니다.
② 런타임 중: 객체가 속한 클래스에 호출 메서드가 있는지 확인합니다.
---------------------------------- --- ---
//간단히 말하면, 멤버 함수가 호출될 때 컴파일할 때는 왼쪽을 보고, 실행할 때는 오른쪽을 보세요. //
---------------------------------- --- -----
2. 다형성에서 같은 이름을 가진 변수의 특징: (ps: 다른 이름은 확인되지 않았습니다.)
컴파일이나 실행 여부에 관계없이 왼쪽(클래스)을 참조하세요. 참조 변수가 속한 클래스)
3. 다형성에서 정적 멤버 함수의 특징:
컴파일이나 실행 여부와 관계없이 왼쪽(참조 변수가 속한 클래스)을 참조합니다.
예:

Class Fu 
{ 
int num=1;
public void method1()
{
System.out.println("fu_1");
}
public void method3()
{
System.out.println("fu_3");
}
//静态方法(包括变量)不所属于对象,它绑定于所属的类,会在内存中提前加载出来
public static void method4()
{
System.out.println("fu_4");
}
}
Class Zi extends Fu
{
int num=2;
public void method1()
{
System.out.println("zi_1");
}
public void method2()
{
System.out.println("zi_2");
}
public static void method4()
{
System.out.println("zi_4");
}
}
Class Duotaitest
{
public static void main (String [] args)
{
Fu f=new Zi ();
f.method1();
//f.method2(); 此行代码若存在,则编译失败,Fu类中没此方法
f.method3();
f.method4();
System.out.println(f.num);
Zi z= new Zi();
System.out.println(z.num);
}
/* 
运行结果: zi_1
fu_3
fu_4 //静态方法不能被子类重写覆盖,若想调用子类中的静态方法(一般没这么用的,只是面试会用到)Zi.method4(类名.方法名)
1
2
*/
}



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.