主要内容
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(); } }