final
- final的变量的值不能够被改变
- final的方法不能够被重写
- final的类不能够被继承
Java中,我们无法让对象被修饰为final,而只能修饰对象的引用,这意味着即使你写public final A a = new A(); 事实上a指向的对象的数据依然可以被修改,不能修改的是a本身的引用值,即你不能再对a进行重赋值。
抽象
- 用关键字abstract修饰的方法称为抽象方法。
abstract class A //类A为抽象类 { …… }
不能直接被实例化,因此一般作为其它类的父类,定义目的是提供可由其子类共享的一般形式。
抽象类需要继承,子类根据自身需要扩展抽象类
abstract class A { abstract int aa(int x,int y);//方法aa为抽象方法 }
抽象类中可以没有抽象方法或某个方法不是抽象方法,有抽象方法的类一定是抽象类[抽象方法只能位于抽象类]。
用abstract关键字来修饰一个类时,这个类叫做抽象类:用abstract来修饰一个方法时,该方法叫做抽象方法。
含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
抽象类不能被实例化。
抽象方法只需声明,而不需实现。
【例】一个带有抽象成员函数的类。
abstract class A //父类 {
abstract void callme( );
void me( ) {
System.out.println("在A的me成员函数里"); } }
class B extends A //子类{
void callme( ) {
System.out.println("在B的callme成员函数里"); } }
public class Abstract {
public static void main(String args[])
{ A a = new B( );//父类new子类
a.callme( );
a.me ( );} }
输出结果:在B的callme成员函数里;
在A的me成员函数里。
5.12