社区
C#
帖子详情
抽象类不能用实例化,但可以创建子类对象引用
2303191
2007-04-04 12:55:15
为什么不直接用子类,而要用抽象父类引用子类呢
...全文
622
7
打赏
收藏
抽象类不能用实例化,但可以创建子类对象引用
为什么不直接用子类,而要用抽象父类引用子类呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hertcloud
2007-04-04
打赏
举报
回复
比如你有
抽象类 A
B,C均是继承至它
你要定义一个函数
getSomething(A test)
这里可以向函数传递 任何 继承至A的类
但是要是你用B, C定义那就得多写很多函数了:)
firsk
2007-04-04
打赏
举报
回复
因为你可能有N个子类,但他们有很多方法是相同的
所以一个父类定子N多公用方法,子类继承它,就可以使用父类的方法
GXY2005
2007-04-04
打赏
举报
回复
为了使用多态!
2303191
2007-04-04
打赏
举报
回复
非抽象父类也可以引用子类吧
我不懂电脑
2007-04-04
打赏
举报
回复
主要就是为了增加可维护性。比如你以后要替换子类的时候可以不改变调用代码。
amandag
2007-04-04
打赏
举报
回复
用抽象类的目的就是为了代码的重用和灵活性
就像hertcloud(·£孙子兵法£·)所举的例子一样(也就是尤其方法在传递参数是),编写方法的人是无须知道调用方法的人扔进来的参数是哪个派生类的对象,这个方法都能用
noky
2007-04-04
打赏
举报
回复
话说多了就没有意思了,你去看看设计模式里的工厂模式就明白了。
抽象类
的
实例化
抽象类
是有构造方法的,但
创建
对象不是通过new来
创建
的 .而是通过父类的
引用
来指向
子
类的实例来间接地实现父类的
实例化
(因为
子
类要
实例化
前,一定会先
实例化
他的父类。这样
创建
了继承
抽象类
的
子
类的对象,也就把其父类(
抽象类
)给
实例化
了). 构造方法作用:1.
创建
对象,2.初始化对象 实例: package day2017_05_25; /** * Created by yaming on
Java
抽象类
的
实例化
抽象类
其实是可以
实例化
的,但是他的
实例化
方式不是通过new方式来
创建
对象,而是通过父类的
引用
来指向
子
类的实例来间接地实现父类的
实例化
(因为
子
类要
实例化
前,一定会先
实例化
他的父类。这样
创建
了继承
抽象类
的
子
类的对象,也就把其父类(
抽象类
)给
实例化
了).但是:接口是
不能
被
实例化
的(接口压根就没有构造函数)。
在Java中
抽象类
真的
不能
实例化
么?
在学习的过程中,发现了一个问题,
抽象类
在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造方法,又不可以通过new来
创建
,那么
抽象类
在没变成具体类的时候究竟可不可以
实例化
呢? 通过上网查找资料、
引用
:blog.sina.com.cn/s/blog_7ffb8dd5010120oe.html
抽象类
其实是可以
实例化
的,但是他的
实例化
方式不是通过new方式来
创建
对象,而是通过父类的
引用
来指向
子
类的实例来间接地实现父类的
实例化
(因为
子
类
Java
抽象类
不能
实例化
但是可以作为数组元素
抽象类
不能
实例化
,但是可以作为对象数组的元素
抽象类
不能
创建
实例,即不可以使用new()来
创建
抽象对象。 public abstract class student { ...... } public class Post extends student{ ...... } public class Under extends student{ ...... } student s1=new student();//此时会报错 而可以
创建
以此
抽象类
为元素的数组 stud...
Java
抽象类
为什么能
实例化
?
在学习Java网络编程的时候,我们都写过如下代码: Socket socket = new Socket("127.0.0.1",9000); OutputStream outputStream = socket.getOutputStream(); 很显然OutputStream是一个
抽象类
,则=右边应该是OutputStream的一个
子
类。然而socket.getOutoutStream()返回类型也是OutputStream类型的。这一看似不符合语法要求的写法其实是没有问题的。
C#
110,552
社区成员
642,562
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章