抽象类包含了抽象方法
抽象方法
• 抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.
• 抽象方法必须用abstract关键字进行修饰
如果一个类继承了抽象类,要么重写抽象类中所有抽象方法,要么将此类也声明为抽象类
抽象类
●如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象
类。
● 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方
法和构造方法。
● 用abstract修饰的类就是抽象类。如果某个类中包含有抽象方法,那么该类就必
须定义成抽象类。
● 特点:
• 抽象类不能被实例化,但可以有构造方法,因为抽象类中含有无具体实现的方法,
所以不能用抽象类创建对象。
● 抽象类只能用作基类,表示的是一种继承关系。继承抽象类的非抽象类必须实
现其中的所有抽象方法,而已实现方法的参数、返回值要和抽象类中的方法一
样。否则,该类也必须声明为抽象类。
● 抽象类,抽象方法,在软件开发过程中都是设计层面的概念。也就是说,
设计人员会设计出抽象类,抽象方法,程序员都是来继承这些抽象类并
覆盖抽象方法,实现具体功能。
多态
多态:同一种事物,在不同时刻表现不同的状态
多态存在的三个必要条件 :
要有继承关系(类继承类,类继承抽象类,类实现接口)(前提条件)
要有方法重写(前提条件)
父类引用执行子类对象
• 当编译期类型是父类,运行期类型是子类时,被称为父类引用指向子类对象
语法
静态方法不能重写,通过类名调用
成员变量不会被重写,所以编译运行都看左边
多态转型
-
自动转型:子 继承 父
向上转型(子类型) 自动转为(上升为) 父类类型
Animal dog = new dog();
-
强制转换:
向下转型(父类类型) 转为 子类自己的类型
优缺点:
● 方法参数具有多态性(好处:提高代码的扩展性)
● 向上转型(优点:提高程序的扩展性 缺点:父类不能调用子类特有的方法)
● 向下转型 (作用是:为了使用子类中的特有方法)