抽象类实例化使⽤原功能c++_抽象类和接⼝(1
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员⽅法和构造⽅法的访问⽅式和普通类⼀样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使⽤。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
⽗类包含了⼈类集合的常见的⽅法,但是由于⽗类本⾝是抽象的,所以不能使⽤这些⽅法。
在Java中抽象类表⽰的是⼀种继承关系,⼀个类只能继承⼀个抽象类,⽽⼀个类却可以实现多个接⼝。
注:抽象类它的本质依然是类,所以它依然具有部分类的特征。例如变量等等,但是需要注意的是他不可以实例化对象。此外它可以被继承,但是继承它的类可以是⼀个抽象类,也可以是⼀个真正的类。
抽象类
在Java语⾔中使⽤abstract class来定义抽象类。如下实例:
抽象类除了不能实例化对象之外它和类是没有区别的。
同样的,当我们试图实例化它的时候它会在编译阶段直接报错。如图所⽰:
抽象类由于不能实例化,所以调⽤它的⽅法必须使⽤借助于继承的⽅式来进⾏调⽤。(使⽤到了多态的⽅式)
如上所⽰,我们可以借助继承的⽅式来对抽象类的属性包括⽅法进⾏调⽤。
抽象⽅法
Abstract 关键字同样可以⽤来声明抽象⽅法,抽象⽅法只包含⼀个⽅法名,⽽没有⽅法体。
抽象⽅法没有定义,⽅法名后⾯直接跟⼀个分号,⽽不是花括号。
抽象⽅法应⽤最⼴泛的实际上在于接⼝。
·
声明抽象⽅法会造成以下两个结果:
如果⼀个类包含抽象⽅法,那么该类必须是抽象类。
任何⼦类必须重写⽗类的抽象⽅法,或者声明⾃⾝为抽象类。
抽象类总结规定
1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译⽆法通过。只有抽象类的⾮抽象⼦类可以创建对象。
2. 抽象类中不⼀定包含抽象⽅法,但是有抽象⽅法的类必定是抽象类。
3. 抽象类中的抽象⽅法只是声明,不包含⽅法体,就是不给出⽅法的具体实现也就是⽅法的具体功能。
4. 构造⽅法,类⽅法(⽤ static 修饰的⽅法)不能声明为抽象⽅法。
5. 抽象类的⼦类必须给出抽象类中的抽象⽅法的具体实现,除⾮该⼦类也是抽象类。
>实例化类和实例化对象

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。