一抽象类-abstract、
父类方法不确定性的问题故将该方法设计为抽象类(没有实现的方法),但一般来说被子类继承然后实现
细节:
1、抽象类不可以被实例化
2、抽象类可以不包含抽象方法而且可以有实现的其他非抽象方法
3、abstract只能修饰类和方法
4、如果一个类继承了抽象类,则要实现抽象方法,除非自己也为抽象类
5、抽象方法不能使用private、final和static来修饰,因为抽象方法子类要进行重写
示例代码如下:
java
public class Abstract01 {
public static void main(String[] args){
abstract2 a = new abstract2(200);
a.hi();
}
}
abstract class abstract1{
private int a;
abstract1(int a){
this.a = a;
}
public abstract void hi();
}
class abstract2 extends abstract1{
private int b;
abstract2(int b){
super(2);
this.b = b;
}
public void hi(){
System.out.println("hi");
}
}
二象类最佳实践-模版设计模式、
需求:1)有多个类,完成不同的任务job
2)要求统计得到各自完成任务的时间
示例代码如下:
java
public class Abstract01 {
public static void main(String[] args){
A a = new A();
B b = new B();
a.getTime();
b.getTime();
}
}
abstract class Stencil{
public abstract void job();
public String calTime(){
long time = System.currentTimeMillis();
job();
long time2 = System.currentTimeMillis();
return "执行时间为: "+(time2 - time);
}
}
class A extends Stencil{
public void job(){
for (float i=0;i<1000000000;i++){
i+=i;
}
}
public void getTime(){
System.out.println("A的工作"+calTime());
}
}
class B extends Stencil{
public void job(){
for (long i=0;i<1000000000;i++){
i*=i;
}
}
public void getTime(){
System.out.println("B的工作"+calTime());
}
}