abstract 抽象类
2016-02-08 17:03
190 查看
package softstudy;
/*抽象类
* 当多个类中出现相同的功能 但功能主体不同
* 这时可以进行向上抽取 这时只抽取功能定义 不抽取功能主体。
* abstract 笼统的 抽象的 看不懂的方法
* abstract方法必须存在abstract类中 你不能创建一个看不懂的类的对象
*
* 就是看不懂
* 抽象类的特点:
* 1,抽象方法一定定义在抽象类中
* 2,抽象方法和抽象类都必须被abstract关键字修饰
* 3,抽象类不可以用new创建对象 因为调用抽象方法没有意义
* 4,抽象类中的抽象方法要想被使用,必须有子类复写起<所有的>抽方法后,建立子类对象调用
* 如果子类只覆盖了部分抽象方法 那么该子类还是一个抽象类
*
*抽象类和一般类没有太大的不同:
* 该如何描述事物就如何描述事物 只不过 该事物出现了看不懂的东西
* 这些不确定的部分也是该事物的功能 需要明确的出现 但是无法定义主体
* 通过抽象方法来表示.
*
*抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法。
*第二个 抽象类不可以进行实例化
*
*特殊:抽象类中可以不定义抽象方法 这样做仅仅是不让该类建立对象
*
* */
class Chongcistu extends StuStudent{
void study(){};//必须复写study方法;
}
public class AbstractDemo {
}
class AdvStudent extends StuStudent{
}
class BaseStudent extends StuStudent{
}
abstract class StuStudent{
}
/*抽象类
* 当多个类中出现相同的功能 但功能主体不同
* 这时可以进行向上抽取 这时只抽取功能定义 不抽取功能主体。
* abstract 笼统的 抽象的 看不懂的方法
* abstract方法必须存在abstract类中 你不能创建一个看不懂的类的对象
*
* 就是看不懂
* 抽象类的特点:
* 1,抽象方法一定定义在抽象类中
* 2,抽象方法和抽象类都必须被abstract关键字修饰
* 3,抽象类不可以用new创建对象 因为调用抽象方法没有意义
* 4,抽象类中的抽象方法要想被使用,必须有子类复写起<所有的>抽方法后,建立子类对象调用
* 如果子类只覆盖了部分抽象方法 那么该子类还是一个抽象类
*
*抽象类和一般类没有太大的不同:
* 该如何描述事物就如何描述事物 只不过 该事物出现了看不懂的东西
* 这些不确定的部分也是该事物的功能 需要明确的出现 但是无法定义主体
* 通过抽象方法来表示.
*
*抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法。
*第二个 抽象类不可以进行实例化
*
*特殊:抽象类中可以不定义抽象方法 这样做仅仅是不让该类建立对象
*
* */
class Chongcistu extends StuStudent{
void study(){};//必须复写study方法;
}
public class AbstractDemo {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //new StuStudent.study(); 实例化没有意义 没有执行体 方法体 new BaseStudent().study(); }
}
class AdvStudent extends StuStudent{
void study(){ System.out.println("study run"); }
}
class BaseStudent extends StuStudent{
void study(){ System.out.println("study run"); }
}
abstract class StuStudent{
abstract void study(); void sleep(){ System.out.println("躺着"); }
}
相关文章推荐
- ADO.NET之存储图片路径
- 两种不同刷新和显示,有待研究
- 【翻译自mos文章】在windows平台上怎么启用Oracle database 企业版的partition?
- VS2013 更改MFC标题栏图标和生成的执行文件图标
- restlet 2.3.5 org.restlet包导入eclipse出现的com.sun.net.httpserver类包找不到问题
- C printf() 详解——printf('%08x',number); 程序员面试宝典中的一个错误 char * b=(char *)&a
- 先有Delphi内存对象,后有句柄(如果需要的话),最后再显示
- 20160205交易记录
- Java Web 错误/异常处理页面
- iOS 基础题
- 安装usb下载驱动遇到权限不够
- mac环境下手动卸载mysql
- 数据结构与算法_c#_猎豹网校
- Sublime Text2 使用VS编译和运行C/C++程序(windows)
- ADO.NET之数据库表之间批量写入数据
- 证明sigma i^2=n(n+1)(2n+1)6
- 去掉NSString中的HTML标签
- JavaWeb项目连接Oracle数据库
- BZOJ-3524 Couriers 可持久化线段树
- BZOJ-3524 Couriers 可持久化线段树