类型转换 - 关于java中向上转型的一小疑问
迷茫
迷茫 2017-04-18 09:20:12
0
6
351
interface fruit{
    public void say();
}
class apple implements fruit{
    public void say(){
        System.out.println("eat apple");
    }
}
public class Just4Fun {
    public static void main(String[] args) {
        fruit anApple = null ;    
//****************************************************
        anApple = new apple() ;      //向上转型
//****************************************************
        anApple.say();
    }
} 

说下我的思路吧:
以这个例子做说明,实例化apple之后将其赋值给anApple,而anApple类型为fruit,空指向,在第二步阶段完成向上转型操作。但这里,我想问的是为什么经常会先把实例化的对象进行向上转型操作呢?这样做的有什么意义?
求帮忙分析下我的【思路】以及这么做的【意义】,困惑很久了已经::>_<::
先谢谢啦~

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(6)
迷茫

Java Collection Framework를 살펴보는 것이 좋습니다

사실 주제의 아이디어에 따르면 여기서는 new Apple ()가 필요하지 않으며 이 인스턴스 객체를 Fruit 참조에 직접 할당할 수 있습니다. >
, 하지만 언젠가 필요할 경우를 대비해Apple apple = new Apple();apple.say();(가능성은 매우 적지만 거의 그렇지 않습니다)
실제로 new Banana()
으로 변경하면 됩니다. 좋습니다. 아래에서 Apple 자체 메서드(인터페이스Fruit fruit = new Apple()메서드 아님)Fruit fruit = new Banana()를 호출하든 상관하지 않으셔도 됩니다. Fruit인터페이스 지향 프로그래밍의 가장 큰 이점은 호출자가 특정 구현에 신경 쓸 필요가 없다는 것입니다. 물론, 제목 예시처럼 이 방법에서도 실제로

를 직접 사용할 수 있습니다. 하지만 우리는 인터페이스 지향 프로그래밍을 옹호하기 때문에 상대적으로 좋은 프로그래밍 습관을 길러왔습니다

Apple apple = new Apple()질문자의 예시가 별로 좋지 않을 수도 있으니 다른 예시를 시도해 보세요

으아악

다음 예시가 더 직관적일지는 모르겠습니다

伊谢尔伦

귀하의 코드를 보면 정말 머리가 아프네요. 코드가 몇 개 안 되지만 코드 사양이 너무 형편없어요.

문제 해결 방법:
Up이 딱 맞습니다. (이건 말도 안되는 소리입니다.)
간단한 예를 들어보세요.
생산자는 동물을 생산하는데, 토끼나 다른 동물도 소비자는 생산자가 무엇을 생산하는지 모릅니다. 그래서 그들은 소비자 측에서 집합적으로 동물이라고 불립니다.

이제 이해되셨죠?

PHPzhong

소스코드를 보시면서 더 읽어보시면 이해가 되실 겁니다

阿神

이것은 Java의 세 가지 주요 기능 중 다형성의 구현입니다. 우리는 항상 프로그래밍에서 인터페이스 지향 프로그래밍을 옹호해 왔습니다. 표준이라고 하기보다는 표준이라고 말하는 것이 더 정확합니다. 코드를 작성할 때는 비즈니스 중심으로 작성해야 합니다. 코드를 확인할 때 비즈니스가 변경되면 코드에 어떤 문제가 생길지, 변경이 가능한지 등도 생각해야 합니다.
자바 아이디어와 디자인 패턴을 살펴보는 것을 추천합니다

迷茫

책이나 온라인에서 다형성과 인터페이스에 대한 설명과 응용을 읽어보면 이 디자인이 정말 영리하다는 것을 알게 될 것입니다!

伊谢尔伦

꼭 이런 식으로 쓰려는 것은 아닙니다. 단지 다형성을 사용하면 더 유연해질 것이라는 뜻입니다.
사실 저는 아직도 대부분의 개발 방법을 작성하고 있습니다. 그게 다야

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!