abstract关键字
1.abstract --抽象的;
2. abstract可以用来修饰的结构:类和方法;
3. abstract修饰类:抽象类;
3.1 抽象类不能被实例化
3.2 抽象类中一定有构造器,便于子类实例化对象时调用(即可通过子类继承抽象类,进行对象的实例化操作)
3.3 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关操作;
4.abstract修饰方法:抽象方法;
4.1 抽象方法只有方法的声明,没有方法体;
4.2 包含抽象方法的类一定是一个抽象类,但是抽象类不一定有抽象方法;
4.3 若子类重写了父类中所有的抽象方法,此子类方可进行实例化;
4.4 若子类没有重写父类中的所有的抽象方法,如果需要实例化的话则需要在子类声明中的加入abstract关键字,让其变成抽象类;
package day1025;
import day1025.Test.Student;
abstract class Test {
String name;
int age;
public Test() {
System.out.println("我是无参构造");
}
public Test(String name,int age) {
this.name=name;
this.age=age;
System.out.println("我是有参构造");
}
//这是普通方法
public void fangfa(){
System.out.println("我是一个程序员");
}
//这是一个抽象方法,有抽象方法的类一定是抽象类,但是抽象类不一定有抽象方法
//抽象方法没有方法体;
public abstract void ceshi();
public static class Student extends Test{
//若子类重写了父类中所有的抽象方法,此子类方可进行实例化;
//若子类没有重写父类中的所有的抽象方法,如果需要实例化的话则需要在子类声明中的加入abstract关键字,让其变成抽象类;
@Override
public void ceshi() {
// TODO Auto-generated method stub
}
public Student(String name,int age) {
super();
System.out.println("name"+name+" age"+age);
}
}
}