>  기사  >  Java  >  Java 다형성 상위 클래스는 하위 클래스의 메소드를 호출합니다.

Java 다형성 상위 클래스는 하위 클래스의 메소드를 호출합니다.

黄舟
黄舟원래의
2017-08-13 09:43:233397검색

패키지 테스트1;

Java 다형성의 상위 클래스가 하위 클래스의 메서드를 호출하는 방법

//多态的体现
import javax.print.attribute.standard.RequestingUserName;
import java.util.Scanner;
public class testfather {
public static void main(String[] args)
{
Animal a  = new fish();   //父类对象被赋以子类类型
/*Animal a;
fish b = new fish b;
a= b
;      //向上转型,不丢失精度
a.talk();*/       //可达到相同效果
a.talk();      //fish覆写animal talk方法
Animal c = new bird();
//C.talk2();    //不能实现,因为animal中没有此方法,必须向下转型
   bird b = (bird)c;    //如果不进行转换,父类无法看到子类新扩充的方法
   b.talk2();
}
}
class Animal
{
public void talk()    //如果父类方法不想被覆写,可改为public 
static
 void talk()
{
System.out.println("walk");
}
}
class fish extends Animal
{
public void talk()
{
System.out.println("swim");
}
}
class bird extends Animal
{
public void talk()
{
System.out.println("fly");
}
public void talk2()//父类中没有此方法,调用必须进行强制转换,向下转型。
{
System.out.println("i am a bird");
}
}

위 내용은 Java 다형성 상위 클래스는 하위 클래스의 메소드를 호출합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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