- @author Administrator
类继承的主要用于利用扩充 已有类的功能,但是对之前的继承操作而然会发现,子类可以有自己的选择任意来决定是否要覆写某一个方法,这个时候父类无法对子类做出强制性约定(强制你必须覆写某一个方法)这种情况下我们往往不会采用类的继承
(在实际开发之中很少会出现继承一个已经完善的类 )
*什么是完善的类
*比如:
*class person { - 这个 person 类算不算完善的类 (所谓完善 的类是 可以直接可以使用的类就是完善的类 )
*} - 而是必须要继承抽象类 ,在以后进行父类(SuperClass )的设计的时候我们优先 考虑的一定是抽象类。
- 抽象类的基本定义
- 抽象类的主要作用在于对子类中的覆写方法 ,进行约定,在抽象类里面可以定义一些抽象方法以实现这样的 一个
- 约定,那么抽象方法的是使用了 abstract 关键词定义的并且没有提供方法体的方法,而抽象方法所在 的类必须
- 为抽象类,抽象类必须使用 abstract 关键词来进行定义
- (直白点说就是在普通类的基础上追加抽象方法就是抽象类)。
- 范例:定义一个抽象类
package duixiang;
abstract class Message { //定义一个抽象类
private String type ;
public abstract String getConnectInfo (); //抽象的方法
public void setType (String type) { //普通方法
this.type = type ;
}
public String getType () {
return this.type ;
}
}
class DatabaseMessage extends Message { //类的继承关系
@Override
public String getConnectInfo() { //方法覆写
// TODO Auto-generated method stub
return "MySQL数据库链接成功" ;
}
}
public class Abstract {
public static void main(String[] args) {
// TODO Auto-generated method stub
Message per = new DatabaseMessage();
System.out.println(per.getConnectInfo());
per.setType("可以进行链接");
System.out.println(per.getType());
}
}
输出结果:
MySQL数据库链接成功
可以进行链接
- @author Administrator
*一个抽象类其实就是在普通类中追加了抽象方法, - public abstract String getConnectInfo (); //抽象的方法
- 同时在类的声明中也可以使用 abstract 关键词来定义
- (抽象类是不能直接 new )
- 当一个抽象类定义完成之后 (抽象类不是完整的类)如果想去使用抽象类则必须按照原则进行
-
1.抽象类必须有子类 ,子类使用 extends 继承一个抽象类;
-
2.抽象类的子类 (不是抽象类) 一定要覆写抽象类中的全国不抽象方法;
-
3.抽象类的对象实例化可以利用对象多态性通过子类向上转型的方式完成;
所以抽象类就是 比普通类加多个抽象方法以及对子类的强制性要求覆写而已
其他的使用过程和传统的类继承是一样的。
抽象类的几大问题:
1.抽象类使用无法自己直接实例化(new);
2. 抽象类之中主要的目的是就像过度操作使用,当你要使用抽象类开发时候,
往往都是在设计中需要解决类继承 问题时所带来的代码重复处理。
来源:CSDN
作者:Ailike格调
链接:https://blog.csdn.net/weixin_42829939/article/details/104243099