抽象类:
1.含有抽象方法的类叫抽象类, 在类中定义了抽象方法就必须在类的前面加上abstract关键字
abstract class TestClass{
abstract void show\(\);
}
class SubClass extends TestClass{
void show\(\){
System.out.println\("SubClass"\);
}
}
public class Test10 {
public static void main\(String\[\] args\) {
// TODO Auto-generated method stub
TestClass tc = new SubClass\(\);
tc.show\(\);
}
}
2.在定义的类前加abstract来定义抽象类.类里面的方法可以不是抽象方法. 如果不是抽象方法,就是提供一个default的默认行为给子类进行使用,子类可以根据自己的情况看是否使用父类里面的默认行为.
abstract class TestClass{
void show\(\){
System.out.println\("TestClass"\);
}
}
class SubClass extends TestClass{
}
public class Test10 {
public static void main\(String\[\] args\) {
// TODO Auto-generated method stub
TestClass tc = new SubClass\(\);
tc.show\(\);
}
}
3.抽象类不能实例化.
抽象方法:
没有实体的方法.
把共同性的放在父类,把差异性的放在子类.
抽象方法的反向调用:这个就是设计模式里面的 模板模式.
Java里面的函数默认都是虚拟函数.
Java默认的函数就是相当于C++中虚函数(virtual ,eg: virtual void show(){xxxx}).
Java中的abstract抽象函数就相当于C++中pure 虚函数(pure virtual,eg: virtual void show()=0;)C++中含有pure virtual函数叫抽象类.