java基础
抽象类:抽象类的作用类似模板供设计者依据他的格式来修改并创建新类,他不能事例化对象,包含一个或多个抽象方法(用abstract修饰的方法).同样,包含抽象方法的类必须是抽象类.抽象类用abstract修饰.抽象类只能被继承,且继承他的子类必须将所有父类的抽象方法全部实现.
抽象方法:抽象方法用abstract修饰,但不需要实现,也不能实现(没有主体,否则编译会报错).
注意:因为抽象类要被子类继承覆盖,因此不要用private修饰方法权限,也不要用final修饰,另外属性不能被抽象.
例一:
abstract class A
{
public static final String FLAG="CHINA";
private String name="Li Xinghua";
public String getNeme(){
return name;
}
public void setName(){
this.name=name;
}
public abstract void print(){};
}
class B extends A
{
public void print(){
System.out.println("It is class B");
}
}
public class Demo2
{
public static void main(String[] args){
//A a=new A();
B b=new B();
}
}
可以看到,抽象方法中不能有主体.
例二:
abstract class A
{
public static final String FLAG="CHINA";
private String name="Li Xinghua";
public String getNeme(){
return name;
}
public void setName(){
this.name=name;
}
public abstract void print();
}
class B extends A
{
public void print2(){
System.out.println("It is class B");
}
}
public class Demo2
{
public static void main(String[] args){
//A a=new A();
B b=new B();
b.print2();
}
}
将例一中B类的print方法修改为print2后,提示以上错误,这说明,我们如果没有在B类中覆盖A类中的抽象函数,那么B类仍然为抽象类,不可以实例化对象.