目录:
- 理解什么是抽象
- 创建一个抽象类
- 抽象类的使用
- 抽象类不可实例化
正文:
- 抽象类 Abstract Class
• 什么东西是抽象的?
比如,"好看的花", "好吃的东西", "男生"
• 什么东西是具体的?
比如,“牡丹花”,“红烧肉”(哈哈,....),“小明”
2. 创建一个抽象类
abstract来修饰class即可
public abstract class FunnyThing
{
}
在抽象类里的方法可以没有定义,称为抽象方法
public abstract class FunnyThing
{
public abstract void makeMeLaugh();
}
3. 抽象类的使用
抽象类不是必须的
我们不一定要使用抽象类, 创建一个普通类即可:
public class FunnyThing
{
public void makeMeLaugh()
{
}
}
结论:初学者没必要自己写一个抽象类
4.抽象类不可实例化
抽象类不可以实例化:
FunnyThing f = new FunnyThing(); // 错!
抽象类仅用于描述一类事情:应该有什么,应该能做什么。它不是具体的类,不能创建对象。
很常见的写法:
FunnyThing f = new ChildrenStory();
定义一个父类的引用,指向的对象是子类类型
总结:对语法有个大概印象.
抽象类用abstract修饰类,抽象方法用abstract修饰的函数,可以没有函数体(C++中的纯虚函数)
抽象类仅用于描述一类事情,
例如好吃的东西 就应该有以下属性: 好吃, 能填饱肚子, 提供能量, 所以在好吃的东西类里就应该就好吃, 能填饱肚子, 提供能量的属性或方法,
红烧肉继承好吃的东西把父类中的函数实现: 好吃:怎么好吃?, 能填饱肚子:如何填饱肚子, 提供能量:怎么具体的提供能量,提供多少能量,
所以抽象类不能实例化(好吃的东西怎么实例化??), 用于派生一个子类,然后再实现所有抽象方法.
初学没必要写一个抽象类