final与abstract的用法

final关键字的用法:

   1、final关键字修饰变量(成员变量和局部变量的区别,引用变量和基本数据类型的区别)。

     2、final可以修饰方法
     3、final修饰类

其中final修饰方法跟继承有关,而且不能被子类重写;

fianl修身类是不能被继承的;而且要注意:fianl修饰基本数据类型的成员变量必须赋值,否则编译器报错。并且fianl修饰的成员变量一旦赋值就不可改变。


  例如:public final class Retangle{

                     public  final  void test1{

                      }

             }

             // 注意:这里程序会报错,因为被fianl修饰的类,不允许被继承。

             public class Cube extends Retangle{

                       // 这里也会报错,fianl修饰的方法在子类中不能被重写。

                       public void test1{}

             }

abstract 关键字:

     abstract要注意一下几点:

        1.对于方法来说,加了abstract就没有意义了。

        2.有抽象方法的类一定是抽象类,抽象类不一定有抽象方法。然而方法中用了abstract,那本身就成了抽象类。

         例如:public abstract class Shape{}  // 表示抽象类。

        3.抽象类不允许被实例化。

        4.抽象类有构造方法,子类可以通过shper调用父类的构造方法,对从父类的属性进行初始化。

        5.抽象关键字不可以与fianl关键字一起使用,因为abstract要求子类一定要重写父类的方法,但fianl不允许重写。

        6.抽象关键字不恶意和private关键字一起使用,因为private是私有的,不能被继承的内容代表根本不存在方法重写,因此不能一起使用。

        7.关键字不能与static一起使用,static是静态修饰符,代表不需要实例化对象,直接类名就可以调用,如果是抽象方法,没有方法实现调用方法会出错,所以不能一起使用。

        8.构造方法不允许被继承,也没有重写,不能用abstract修饰。

注意:用abstract修饰的方法没有方法执行体,因为不行有任何内容;而且abstract修饰的方法在子类中必须重写,抽象类不能够被实例化,可子类创建对象进行调用。

         例如: abstract void teat1();// 用abstract修饰的方法没有方法执行体。



public abstract class Shape{

          int  x;

          int  y;

          public void tset2();

}

public class Cycle extends Shape{
//抽象方法。要被子类重写才有意义

       // 这里重写了父类的方法
void test2() {
// TODO Auto-generated method stub
System.out.println("我是子类重写了抽象方法");
}

}
public static void main(String[] args){
      //抽象类 shape不能够被实例化
      //Shape s = new Shape();
  Cycle c = new Cycle();
    c.x = 20;
    c.y = 30;

    c.test2();

}

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值