黑马程序员-----Java基础-----抽象类
来源:互联网 发布:误删数据库怎么恢复 编辑:程序博客网 时间:2024/06/05 05:57
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
当多各类中出现相同功能,但是功能主题不同,
这是可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主题。
抽象:看不懂
抽象类特点:
1,抽象方法 一定定义在抽象类中,
2,抽象方法抽象类都必须被abstract 关键字修饰。
3,抽象类不可以用new 创建对象,因为调用抽象方法没意义。
4,抽象类中的方法要被使用,必须由子类复写其所有抽象方法后,建立子类调用,
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
抽象类和一般类没有太大的不同
该如何描述事物,就如何描述,只不过,该事物出现了一些看不懂的东西
这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主题。
通过抽象方来法表示;
抽象类比一般类多个抽象函数。就是在类中定义抽象方法。
抽象类不可以实例化。
特殊;抽象类中可以不定义抽象方法,这样做仅仅是不让改类建立对象。
//class Student
abstract class Student
{
// void study();
abstract void study();
{
System.out.println("study");
}
}
class BaseStudent extends Student
{
void study()
{
System.out.println("base study");
}
}
class AdvStudent extends Student
{
void study()
{
System.out.println("adv study");
}
}
public class AbstractDemo {
public static void main(String[] args) {
}
}
//练习 员工,姓名 工号 工资 经理继承员工,还有奖金。还有各自工作行为
class Worker
{
private String name;
private String ID;
private double pay;
Worker(String name, String ID, double pay)
{
this.name = name;
this.ID = ID;
this.pay = pay;
}
public abstract void woked();
}
class Man extends Worker
{
private int jjn;
Man(String name, String ID, double pay,int jjn)
{
super(name, ID, pay);
this.jjn = jjn;
}
public void woked()
{
System.out.println("jingli");
}
}
//获取一段程序运行时间,程序开始结束时间相减。System中system。currentTimeMillis();
abstract class GetTime
{
public final void getTime()
{
long start = System.currentTimeMillis();
runtime();
long end = System.currentTimeMillis();
System.out.println("毫秒:"+(end - start));
}
public abstract void runtime();
}
class SubTime extends GetTime
{
public void runtime()
{
for(int x = 0 ; x < 4000 ;x++)
{
System.out.print(x);
}
}
}
class B
{
public static void main(String []args)
{
SubTime gt = new SubTime();
gt.getTime();
}
}
当代码完成优化后,就可以解决一类问题,这种方式,模板方法设计模式
什么是模板方法呢:
在定义功能时,功能的一部分是确定的,
但是有一部分是不确定的,而且确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类
去完成
这是可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主题。
抽象:看不懂
抽象类特点:
1,抽象方法 一定定义在抽象类中,
2,抽象方法抽象类都必须被abstract 关键字修饰。
3,抽象类不可以用new 创建对象,因为调用抽象方法没意义。
4,抽象类中的方法要被使用,必须由子类复写其所有抽象方法后,建立子类调用,
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
抽象类和一般类没有太大的不同
该如何描述事物,就如何描述,只不过,该事物出现了一些看不懂的东西
这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主题。
通过抽象方来法表示;
抽象类比一般类多个抽象函数。就是在类中定义抽象方法。
抽象类不可以实例化。
特殊;抽象类中可以不定义抽象方法,这样做仅仅是不让改类建立对象。
//class Student
abstract class Student
{
// void study();
abstract void study();
{
System.out.println("study");
}
}
class BaseStudent extends Student
{
void study()
{
System.out.println("base study");
}
}
class AdvStudent extends Student
{
void study()
{
System.out.println("adv study");
}
}
public class AbstractDemo {
public static void main(String[] args) {
}
}
//练习 员工,姓名 工号 工资 经理继承员工,还有奖金。还有各自工作行为
class Worker
{
private String name;
private String ID;
private double pay;
Worker(String name, String ID, double pay)
{
this.name = name;
this.ID = ID;
this.pay = pay;
}
public abstract void woked();
}
class Man extends Worker
{
private int jjn;
Man(String name, String ID, double pay,int jjn)
{
super(name, ID, pay);
this.jjn = jjn;
}
public void woked()
{
System.out.println("jingli");
}
}
//获取一段程序运行时间,程序开始结束时间相减。System中system。currentTimeMillis();
abstract class GetTime
{
public final void getTime()
{
long start = System.currentTimeMillis();
runtime();
long end = System.currentTimeMillis();
System.out.println("毫秒:"+(end - start));
}
public abstract void runtime();
}
class SubTime extends GetTime
{
public void runtime()
{
for(int x = 0 ; x < 4000 ;x++)
{
System.out.print(x);
}
}
}
class B
{
public static void main(String []args)
{
SubTime gt = new SubTime();
gt.getTime();
}
}
当代码完成优化后,就可以解决一类问题,这种方式,模板方法设计模式
什么是模板方法呢:
在定义功能时,功能的一部分是确定的,
但是有一部分是不确定的,而且确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类
去完成
0 0
- 黑马程序员:Java基础总结----抽象类
- 黑马程序员--java基础--抽象类
- 黑马程序员-----Java基础-----抽象类
- 黑马程序员 Java基础<三>---> 抽象类、与接口
- 黑马程序员--Java基础--抽象类和接口
- 黑马程序员 Java基础<三>抽象类与接口概念
- 黑马程序员—JAVA基础之继承、抽象类、接口
- 黑马程序员--java基础--抽象类和接口
- 黑马程序员---Java基础---面向对象:继承、抽象类、接口
- 黑马程序员---java基础---多态,抽象类,接口
- 黑马程序员-java基础 继承、抽象、接口
- Java基础---继承、抽象、接口 (黑马程序员)
- 【黑马程序员】----java基础---继承、抽象、接口
- 黑马程序员——Java基础--抽象
- 黑马程序员-JAVA基础-继承、抽象、接口
- 黑马程序员----JAVA----抽象类----
- 黑马程序员------.Net基础之抽象类
- 黑马程序员 Java 抽象类和接口
- 两层查询词扩展描述的简单排序
- VS2010,C语言编程调用函数sqrt
- git学习笔记
- Jquery的运用
- Scope Is the Enemy of Success
- 黑马程序员-----Java基础-----抽象类
- Value Stewardship Over Showmanship
- Havok_2014-1-0_Pc_Xs_User_Guide(2.3.2-一般监听器)
- C++常见的质数判断算法
- C++模板学习
- Android闹钟程序
- php学习-02变量
- Maven+Nexus私服搭建总结
- java.lang.IllegalArgumentException: Illegal character in query at index ...解决办法