1.面向对象
面向对象有什么用呢,继承有什么用呢,其实用处很大。就是可以减少代码的重复使用,化繁为简。把重复的代码写在父类里,然后通过子类继承父类,这样就减少了很多代码。
例子:比如说刚开始有一台电脑,然后有打印,发送......
现在加了一台打印机,然后在定义一个类和里面的函数,再来一个再加一个类和里面的函数,这样一直加下去就会有很多重复代码。
因此我们定义一个父类:让这些打印机继承这个父类和父类的函数,这样就是再多的打印机,只要继承父类就不再写这个类里面的函数,这样就节省很多事情。
2.抽象类,抽象函数
(1)什么是抽象函数:比原来的函数更加抽象(基本没说),没有函数体(大括号和大括号里面的内容)的函数就抽象函数,就是这个函数的内容是无法确定的。
abstract void fun();
函数存在的意义:当调用函数的时候,执行函数里面的内容。
(2)抽象函数有什么作用:在面向对象里,先抽象再具体。
抽象类:(天生就是当爹的,就是用来继承的)
abstract class Persion{}
abstract class China extends Persion{}
1>抽象类不能生成对象——为什么,因为如果可以生成对象的话,那么调用这个类的抽象函数,该怎么办呢,抽象函数都没有实现内容,因此是不能生成对象的。
2>有抽象函数的类必须被定义为抽象类
继承类抽象类怎么办呢,又是一个抽象类(因为继承了父类的抽象函数,然后只能是抽象类)
但是我们可以用复写抽象父类的抽象函数(抽象函数不是具体的,然后子类实现了这个抽象函数)
这样子类就可以生成对象。
3>抽象函数不一定定义抽象函数,可能是为了不想让别人生成这个类的对象。
4>抽象类是可以有构造函数的
构造函数是为了生成类的对象,那抽象类可以生成构造函数么?
抽像类的子类是可以生成构造函数的,构造函数里面有自动的super来调用父类的构造函数(即使没有写super,可是会调用的)。
3.为什么要使用抽象类
我们无法写出一个万能的函数,包含所有情况。无法给具体的函数体;
抽象类的必要性:
1,为子类提供一个公共的类型;
2,封装子类中重复内容(成员变量和方法);
3,定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。
网友评论