以下内容来自marschen的java4android视频教程.
主要内容
1.抽象函数的语法特征.
2.抽象类的语法特征.
3.抽象类的作用.
在面向对象有一个非常非常有用的东西,先抽象,再具体.
因为抽象不容易出现错误
问1:什么是抽象函数
只有函数的定义,没有函数体的函数被称为抽象函数.
abstract void fun();
问2什么是抽象类
使用abstract定义的类被称之为抽象类.
1.抽象类不能够生成对象.
2.如果一个类当中包含有出象函数,那么这个类必须声明为抽象类.
3.如果一个类当中没有抽象函数,那么这类也可以被声明为抽象类.
抽象类可以有构造函数么?
条件:
1.抽象类不能生成对象.
2.构造函数用于生成类的对象.
结论: 如果从这个片面的两点来看,抽象类没有构造函数.
但是.抽象类可以有构造函数,这个构造是为子类服务的.
把知识横向串列在一起,让它为了一个目的,减少重复代码.
总结
1.抽象函数就是没有函数体的函数.
2.抽象类使用abstrace来定义.
3.抽象类不能生成对象,但是却可以拥有构造函数.
这构造函数是为了子类准备的.
abstract class Person23{
String name;
int age;
Person23(){
System.out.println("person构造函数");
}
Person23(String name ,int age){
this.name = name;
this.age = age;
}
void introduce(){
System.out.println("名字是" +name+age);
}
abstract void eat();
}
//这样可以能过编译.
//abstract class Chinese extends Person23{
//
//}
//这样可能通过编译.
class Chinese extends Person23{
Chinese(){
System.out.println("chinese构造函数");
}
Chinese(Sting name,int age ,String address){
super(name,age);
this.address = address;
}
void eat(){
System.out.println("用筷子吃饭");
}
}
class TestChinese{
public static void main(String args[]){
Person23 p = new Chinese();
p.eat();
}
}