部分代码转载至马士兵JAVASE资料。
final关键字
修饰变量:
修饰方法:final修饰方法,那么这个方法不可以被该类的子类重写:
修饰类:final修饰类,代表没有子类,该类不可以被继承:一旦一个类被final修饰,那么里面的方法也没有必要用final修饰了(final可以省略不写)
抽象类和方法
抽象类和抽象方法的关系:
抽象类中可以定义0-n个抽象方法。
抽象类作用:
在抽象类中定义抽象方法,目的是为了为子类提供一个通用的模板,子类可以在模板的基础上进行开发,先重写父类的抽象方法,然后可以扩展子类自己的内容。抽象类设计避免了子类设计的随意性,通过抽象类,子类的设计变得更加严格,进行某些程度上的限制。 使子类更加的通用。
面试题:
(1)抽象类不能创建对象,那么抽象类中是否有构造器?
抽象类中一定有构造器。构造器的作用 给子类初始化对象的时候要先super调用父类的构造器。
(2)抽象类是否可以被final修饰?
不能被final修饰,因为抽象类设计的初衷就是给子类继承用的。要是被final修饰了这个抽象类了,就不存在继承了,就没有子类。
接口
接口声明格式:
[访问修饰符] interface 接口名 [extends 父接口1,父接口2…] {
常量定义;
方法定义;
}
接口的作用是什么?
定义规则,只是跟抽象类不同地方在哪?它是接口不是类。
接口定义好规则之后,实现类负责实现即可。
继承:子类对父类的继承
实现:实现类对接口的实现
多态的应用场合:
(1)父类当做方法的形参,传入具体的子类的对象
(2)父类当做方法的返回值,返回的是具体的子类的对象
(3)接口当做方法的形参,传入具体的实现类的对象
(4)接口当做方法的返回值,返回的是具体的实现类的对象
【6】接口和抽象类的区别:
内部类
将一个类定义在另一个给类里面或者方法里面,这样的类就被称为内部类。 内部类可以分为四种:成员内部类、局部内部类、匿名内部类、静态内部类,下面我们逐一介绍这四种内部类。