JAVA 子类对象赋给父类指针
子类对象赋给父类指针,经常在用,但不明白具体是什么意思。看看下面的:InputStreamin=newFileInputStream(value);和FileInputS...
子类对象赋给父类指针 ,经常在用,但不明白具体是什么意思。看看下面的:InputStream in = new FileInputStream(value);和FileInputStream in = new FileInputStream(value);两者有什么不懂,两者各自的应用范围,详细点。
展开
展开全部
在java中一般不称指针。对于你这个问题,我的理解是这样的:
在面向对象编程中,有个基本原则,就是要面向接口编程,不要面向实现编程。
InputStream in = new FileInputStream(value); // 面向接口
FileInputStream in = new FileInputStream(value); // 面向实现
面向接口编程的好处是,在有新需求时,只需要变换相应的实现类就可以了,就比如上面那句,如果你不想使用FileInputStream了,而是想使用其他的如ByteArrayInputStream、BufferedInputStream了,其他地方的调用不需要改变,改变这里就可以李。而如果你面向的是实现编程,那么在遇到类似的改动时,就非常的被动,改动面比较大。这也是常说的扩展性。
另外,这里还带出了一个面向对象原则,叫 里氏代换,即在可以使用父类的时候,子类都可以使用,也就在使用InputStream时,都可以使用FileInputStream了~
在面向对象编程中,有个基本原则,就是要面向接口编程,不要面向实现编程。
InputStream in = new FileInputStream(value); // 面向接口
FileInputStream in = new FileInputStream(value); // 面向实现
面向接口编程的好处是,在有新需求时,只需要变换相应的实现类就可以了,就比如上面那句,如果你不想使用FileInputStream了,而是想使用其他的如ByteArrayInputStream、BufferedInputStream了,其他地方的调用不需要改变,改变这里就可以李。而如果你面向的是实现编程,那么在遇到类似的改动时,就非常的被动,改动面比较大。这也是常说的扩展性。
另外,这里还带出了一个面向对象原则,叫 里氏代换,即在可以使用父类的时候,子类都可以使用,也就在使用InputStream时,都可以使用FileInputStream了~
展开全部
那么通过父类指针访问的方法呢,显然要通过对象中指向方法区的指针找方法,指向的是哪里?是子类。子类不包含方法怎么办,在找父类。也就是说,如果发生,UlgxjC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是java实现多态的关键:我理解的是‘父类引用指向子类对象’,通俗理解就是父类的对象由子类new出来。
至于你下面举得例子是java高级中io流中的输入流。那个value代表的是你要输入的内容。一个是字节流,一个是文件流。
至于你下面举得例子是java高级中io流中的输入流。那个value代表的是你要输入的内容。一个是字节流,一个是文件流。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JAVA里面讲指针
这叫对象的引用,形式是一样的
两者的不同就看你自己的应用
这叫对象的引用,形式是一样的
两者的不同就看你自己的应用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询