黑马程序员技术交流社区
标题:
关于抽象类的问题
[打印本页]
作者:
Massive
时间:
2013-11-7 18:45
标题:
关于抽象类的问题
abstract class Demo {
abstract void show();
}
class DemoA extends Demo {
void show() {
System.out.println("demoa show");
}
}
class DemoB extends Demo {
void show() {
System.out.println("demob show");
}
}
DemoA继承了Demo之后,对他里面的方法是直接可以用呢还是要重写才能用呢?
对这里不太明白求解!
作者:
Mr.Z.Lee
时间:
2013-11-7 19:02
抽象类的方法需要被子类重写才可以实例化,多看看张孝祥老师的基础视频
作者:
帅气的冬瓜
时间:
2013-11-7 19:18
抽象类特点:1、抽象方法一定在抽象类中
2、抽象方法和抽象类都必须被abstract关键字修饰
3、抽象类不可用new创建,因调用无意义
4、抽象类中的抽象方法要被使用。必须由子类复写起所有的抽象方法后,建立子类对象调用
抽象类不可实例化,抽象类中可以不定义抽象方法,这样做是不被创建对象。
作者:
明月几时有
时间:
2013-11-7 19:23
本帖最后由 明月几时有 于 2013-11-7 19:34 编辑
abstract class Demo { //这是一个抽象类
abstract void show(); //这是一个抽象方法,抽象方法一定要被重写才能用,因为它没有方法体,生来就是要被重写的,重写了才有具体的意义
}
class DemoA extends Demo {
void show() { //这里重写了抽象类的抽象方法show()
System.out.println("demoa show");
}
}
class DemoB extends Demo {
void show() {
System.out.println("demob show");
}
}
如果要使用子类中重写后的show()方法,就要在另外一个类中创建对象调用,再添加如下代码即可
DemoA da =new DemoA( );
DemoB db =new DemoB( );
da.show( ); //调用DemoA类中的show方法
db.show( ); //调用DemoB类中的show方法
作者:
~﹏~
时间:
2013-11-7 19:24
抽象类的抽象方法必须重写才可以使用,
抽象类的普通方法可已直接使用
作者:
张秀威
时间:
2013-11-7 20:48
abstract class Demo {
abstract void show();
}
class DemoA extends Demo {
void show() {
System.out.println("demoa show");
}
}
class DemoB extends Demo {
void show() {//这里继承并覆盖了Demo类中的抽象方法,必须建立子类对象才能调用的
System.out.println("demob show");
}
}
复制代码
抽象类特点:1、抽象方法一定在抽象类中
2、抽象方法和抽象类都必须被abstract关键字修饰
3、抽象类不可用new创建,因调用无意义
4、抽象类中的抽象方法要被使用。必须由子类复写起所有的抽象方法后,建立子类对象调用
抽象类和一般类没有太大的区别的。
抽象类比一般类多 了个抽象函数,就是在类中可以定义抽象方法,抽象类不可以实例化(类中不明确的事物,创建不知干什么)
楼主这下对抽象类有一点的了解了吧。。。
当然还要注意一点抽象类的特殊之处:就是抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象(作用)。。。
作者:
zdrain
时间:
2013-11-7 20:51
呵呵,这么可爱一定是女孩子,嘻嘻,我来解答你的问题。
DemoA继承Demo之后呢,他的内部非抽象方法可以直接拿来用哦,例如Demo里要是有func(){。。。}就可以直接建立子类DemoA的引用调用func()方法
但是呢,如果是抽象方法就不一样了,因为抽象方法没有方法体,无法确定他的功能,所以要其子类对其抽象方法进行复写,这样方法就有了存在的意义了,懂了吗?如果不复写的话,子类继承了抽象方法那么这个子类也是抽象类啦。
作者:
☆星痕泪
时间:
2013-11-7 23:09
朋友,你可以再仔细看看老毕的那几段视频,毕老师将的很清楚,
抽象类的方法因为是抽象的所以无法new对象,是需要继承抽象类,子类复写里面的抽象方法,所以对你说父类里的方法不能直接调用,需要重写才能调用。
呵呵,视频要多仔细看看,不懂先想再百度,再到论坛。加油!!!
作者:
spiderman
时间:
2013-11-7 23:41
首先,如果继承抽象类,你不重写,那么子类也是抽象类,抽象类是不能创建对象的。
其次,如果你不重写,那么这个方法是没办法使用的。
最后,还是看看毕老师的视频吧,这都是基本的概念,没有为什么,这是乌龟的屁股——固定。。。
作者:
卑微の小幸福
时间:
2013-11-7 23:43
之所以要把这个类抽象 就是为了让继承他的类复写他的方法。 呵呵。 所以当然是要重写了才能用了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2