黑马程序员技术交流社区
标题:
抽象类的应用
[打印本页]
作者:
李朋朋
时间:
2012-7-18 15:01
标题:
抽象类的应用
什么情况下应用抽象类?如何应用?
作者:
许庭洲
时间:
2012-7-18 15:09
1,如果有多个接口实现有公用的部分,则使用抽象类,然后集成它;
2,应用方式
#不能对字段抽象;
#不能对 private 抽象;
#可以含有非抽象的成员;
#不能实例化;
#只能从一个类继承;
#可以被抽象类继承,此时不必实现抽象成员;
#可以被普通类继承,此时必须实现抽象成员;
#实现抽象成员时要加override;
作者:
刘秋菊
时间:
2012-7-18 16:06
声明一个抽象方法使用abstract关键字。
一个类中可以包含一个或多个抽象方法。
抽象类中可以存在非抽象的方法。
抽象类不能被直接被实例化。
实现抽象类用“:”(冒号),实现抽象方法用override关键字。
抽象类可以被抽象类所继承,结果仍是抽象类。
抽象方法被实现后,不能更改修饰符。
例子如下:
public abstract class Person
{
public abstract void SayHello();
public void about()
{
Console.WriteLine("Abstract Demo");
}
}
public class Student : Person
{
public override void SayHello()
{
Console.WriteLine("SayHello");
}
}
class MainClass
{
public static void Main()
{
new Student().SayHello();
}
}
作者:
侯茂绵
时间:
2012-7-18 16:59
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
作者:
京鱼龙
时间:
2012-7-19 00:05
抽象类的特点:
1,没有方法体的方法是抽象方法,一定定义在抽象类中。
2,抽象类和抽象方法必须用abstract关键字所修饰。
3,抽象类不可以被实例化。为啥?因为调用抽象方法没有意义。
4,抽象类必须由其子类覆盖掉所有的抽象方法后,其子类才可以进行实例化。否则,该子类还是一个抽象类。
细节问题:
1,抽象类一定是个父类? 是。
2,抽象类是否有构造函数? 有,因为是给子类对象提供初始化动作的。
3,抽象类中是否可以不定义抽象方法? 可以的。为了不让其创建对象。这种情况在java的体系中就有存在,windowAdapter
总结:abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。abstract class表示的是"is-a"关系
抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。
作者:
杨康
时间:
2012-7-19 14:09
当对描述一件不确定内容的事物或方法的时候,就用abstract来修饰该事物或方法。
被abstract修饰的方法就是抽象方法,被abstract修饰的类就是抽象类。
如果一个类中含有抽象方法,那这个类必须是抽象的。
而一个抽象类中可以有抽象内容,也可以有非抽象内容。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2