Java中的抽象类
来源:互联网 发布:淘宝网怎么举报卖家 编辑:程序博客网 时间:2024/05/24 02:47
1. 抽象类:包含一个抽象方法的类。
抽象方法:只声明而未实现的方法称为抽象方法,抽象方法必须使用abstract关键字声明。
抽象类的定义格式:
abstract class 抽象类名称{
属性;
访问权限 返回值类型 方法名称(参数) {//普通方法
[return 返回值 ] ;
}
访问权限 abstract 返回值类型 方法名称(参数);//抽象方法
//在抽象方法中是没有方法体的
}
2. 抽象类的定义和使用规则
(1) 包含一个抽象方法的类必须是抽象类;
abstract class A{//定义了一个抽象类
public static final String FLAG = "CHIAN";//全局常量
private String name = "逆水百川";//定义一个普通的属性
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public abstract void print();//定义抽象方法
}
从定义上看,抽象类就是比普通类多一个抽象方法!
(2)抽象类和抽象方法都要使用abstract关键字声明;
public class Abstract {
public static void main(String[] args) {
A a = new A();
}
}
abstract class A{//定义了一个抽象类
public static final String FLAG = "CHIAN";//全局常量
private String name = "逆水百川";//定义一个普通的属性
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public abstract void print();//抽象方法
}
抽象类的定义虽然跟普通类非常相似,但是却不能直接实例化。因为他不满足第(4)点!
(3)抽象方法只需要声明而不需要实现,抽象类中不一定有抽象方法,但是有抽象方法的类一定为抽象类!
public abstract void print();//抽象方法
(4)抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法;
(5) 抽象类能不能使用final关键字声明?
不能,因为final关键字声明的类不能有子类
而抽象类是必须有子类的。
(6)抽象类中是允许存在构造方法的,因为抽象类依然使用的是类的继承关系,而且抽象类中也存在各个属性,所以子类在实例化之前肯定是先要对父类进行实例化。
举例:
public class Abstract2 {
public static void main(String[] args) {
N n = new N();
}
}
abstract class X{
public X(){
System.out.println("父类为抽象类,父类中的构造方法!!");
}
}
class N extends X{
public N(){
System.out.println("子类中的构造方法!");
}
}
运行结果:
父类为抽象类,父类中的构造方法!!
子类中的构造方法!
7. 抽象类不允许实例话对象。
举例:
public class Abstract2 {
public static void main(String[] args) {
N n = new N();
}
}
abstract class X{
public X(){
System.out.println("父类为抽象类,父类中的构造方法!!");
}
}
abstract class N extends X{
public N(){
System.out.println("子类中的构造方法!");
}
}
以上代码是错误的,因为抽象类不能实例化!!
8. 抽象类使用的时候一定要有子类继承,子类仍然是使用extends关键字继承一个抽象类,同样也是单继承的关系,一个子类不能同时继承多个抽象类。
抽象类不能使用final关键字声明。抽象类允许有构造方法,并且完全符合子类对象的实例化过程。
- java中的抽象类
- Java中的抽象类
- Java中的抽象类
- Java中的抽象类
- java中的抽象类
- java中的抽象类
- JAVA中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- Java中的抽象类
- java中的抽象类
- JAVA中的抽象类
- java中的抽象类
- Java 中的抽象类
- java 中的抽象类
- Introduction to Java Programming编程题6.7<统计0~9随机数出现的次数>
- codeforces 311(div2)C-Arthur and Table
- C++ Primer : 第十一章 : 关联容器之概述、有序关联容器关键字要求和pair类型
- Hadoop源码---Inputformat
- 文章标题
- Java中的抽象类
- WXHL 学习总结连载(六)
- C# 事件驱动基础
- 什么是JS事件冒泡?
- C++: 整型转字符串
- Ubuntu下python3 安装 pip 和 Django
- 设计模式实例(Lua)笔记之二(AbstractFactory抽象工厂模式)
- Android高手速成1--第一部分 个性化控件(View) - Aways.Online
- 深度卷积网络CNN与图像语义分割