抽象函数:只有函数定义,没有函数体
某类有一个以上抽象函数,则该类必须被定义为抽象类
抽象类不能生成对象(天生就是当爹的)
一个类无抽象函数,该类也可被声明为抽象类( 不希望生成该类的对象)
抽象类称之基类
Person的构造函数
student的构造函数
eat
------------/
某类有一个以上抽象函数,则该类必须被定义为抽象类
抽象类不能生成对象(天生就是当爹的)
一个类无抽象函数,该类也可被声明为抽象类( 不希望生成该类的对象)
抽象类称之基类
------/Person.java
abstract class Person {
Person(){
System.out.println("Person的构造函数");
}
abstract void eat();
}
------/Student.java
class Student extends Person{
Student(){ //默认会在此处添加super();
System.out.println("student的构造函数");
}
void eat(){ //该eat覆盖父类eat
System.out.println("eat");
}
}
------/Test.java
public class Test {
public static void main(String[] args){
Person person=new Student();
person.eat();
}
}
结果:
Person的构造函数
student的构造函数
eat
------------/
abstract class Person{
String name;
Person(String name){
this.name=name;
}
}
class Student extends Person{
String addr;
Student(){ //error
this.addr="ncut";
}
}
//
若无super调用父类构造函数,则编译器默认添加super(),但父类super()含参,故报错