Java에서 다형성은 동일한 동작이 여러 가지 다른 표현이나 형태를 가질 수 있는 능력입니다. 다형성은 동일한 인터페이스로, 서로 다른 인스턴스를 사용하여 서로 다른 작업을 수행합니다. 다형성의 장점: 1. 유형 간의 결합 관계 제거, 3. 확장성, 5. 유연성,
이 튜토리얼의 운영 환경: windows7 시스템, java8 버전, DELL G3 컴퓨터.
1.다형성은 캡슐화 및 상속에 이어 객체지향의 세 번째 주요 기능입니다.
2. 다형성현실적인 의미이해:
실제 사물은 종종 다양한 형태를 취합니다. 예를 들어 학생은 일종의 인간이고 특정 동급생 Zhang San은 둘 다학생입니다. 사람은두 가지 형태로 나타납니다.
객체 지향 언어인 Java는 사물의 여러 형태를 설명할 수도 있습니다. Student 클래스가 Person 클래스를 상속하는 경우 Student 개체는 Student이자 Person입니다.4. 전제조건 : 자녀-부모 관계가 있어야 합니다.
참고: 다형성 부모 클래스 참조 변수를 사용하여 메서드를 호출하면 하위 클래스의 재정의된 메서드가 호출됩니다.5. 다형성의 정의 및 사용 형식
정의 형식:상위 클래스 유형 변수 이름 = 새 하위 클래스 유형()
6. 이해:
父类类型 变量名=new 子类类型();
6、理解:
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。
7、多态的优点
消除类型之间的耦合关系
可替换性
可扩充性
接口性
灵活性
简化性
8、多态存在的三个必要条件
继承
重写
父类引用指向子类对象:Parent p = new Child();
다형성은 동일합니다. 여러 가지 다른 표현이나 형태를 갖는 행동.
Simplification
Parent p = new Child();
Fu f=new Zi(); System.out.println(f.num);//f是Fu中的值,只能取到父中的值
Fu f1=new Zi(); System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。
Fu f1=new Zi(); Fu f2=new Son(); if(f1 instanceof Zi){ System.out.println("f1是Zi的类型"); } else{ System.out.println("f1是Son的类型"); }
다형성 변환은 상향 변환과 하향 변환의 두 가지 유형으로 나뉩니다.상향 변환: 다형성 자체가 상향 변환입니다. 전환 과정格 사용 형식: 상위 유형 변수 이름의 유형 = 새 하위 유형()에 해당하는 작업을 완료할 수 있습니다.个 하향 변환: 상향 변환된 하위 클래스 객체는 필수 유형 변환 형식을 사용하여 하위 클래스에 대한 상위 참조 유형을 다양한 유형으로 변환할 수 있습니다. 유형) 상위 클래스 유형의 변수
적용 가능한 시나리오: 서브클래스 고유의 기능을 사용하고 싶을 때.
다형성 사례: )package day0524; public class demo04 { public static void main(String[] args) { People p=new Stu(); p.eat(); //调用特有的方法 Stu s=(Stu)p; s.study(); //((Stu) p).study(); } } class People{ public void eat(){ System.out.println("吃饭"); } } class Stu extends People{ @Override public void eat(){ System.out.println("吃水煮肉片"); } public void study(){ System.out.println("好好学习"); } } class Teachers extends People{ @Override public void eat(){ System.out.println("吃樱桃"); } public void teach(){ System.out.println("认真授课"); } }
package day0524; public class demo1 { public static void main(String[] args) { A a=new A(); a.show(); B b=new B(); b.show(); } } class A{ public void show(){ show2(); } public void show2(){ System.out.println("A"); } } class B extends A{ public void show2(){ System.out.println("B"); } } class C extends B{ public void show(){ super.show(); } public void show2(){ System.out.println("C"); } }
위 내용은 자바 다형성을 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!