PS:最后需要补充的一点的是实例方法和实例变量都不能在静态方法或者静态代码块中出现,this和super关键字也不能在静态方法和静态代码块中出 现,原因是static关键字是用来修饰属于类的变量和方法,而所有和具体对象相关的实例方法,实例变量及与实例相关的关键字(this,super)都 不能放入,不然会造成自相矛盾,编译也会报错!
6、修饰符之abstract
Abstract修饰符用来修饰类和方法
用abstract修饰类表示这是一个抽象类,有一点要切记抽象类是不能实例化的。 用abstract修饰方法就表示这是一个抽象的方法,抽象的方法不提供具体的实现。
关于abstract的语法规定如下
1、 抽象类有可以没有抽象方法,但是有抽象方法的类一定要定义为抽象类 2、 抽象类中的抽象方法在子类中实现。 3、 构造方法没有抽象方法。
什么样的类可以被声明为抽象类呢?比如小吃就可以看成一个抽象类,因为不管是那个地方的传统小吃都是小吃的一个子类,所以我们可以把小吃定义为一个抽象类。
现在用植物举一个例子,植物是一个抽象类,每一种具体的植物都是它的子类,植物有一个生长地带,但是不同的植物生长的地带是不同的,所以可以定义一个抽象类,抽象类中有一个抽象的获得生长地带的方法!程序如下 package blog;
public abstract class Plant {
public abstract void getGrowPlace();//定义一个抽象的方法,获取植物的生长地带 }
package blog;
public class Pine extends Plant {
public void getGrowPlace() {
System.out.println(\松树生长在北方!\ } }
package blog;
public class Bamboo extends Plant{
public void getGrowPlace() {
System.out.println(\竹子生长在南方!\ } }
package blog;
public class Test {
public static void main(String[] args) { Pine pine=new Pine(); Bamboo bamboo=new Bamboo(); pine.getGrowPlace(); bamboo.getGrowPlace(); } }
程序中定义了一个抽象类,由两个子类继承了这个抽象类,并且实现了抽象的方法!
Abstract修饰法的用法比较简单,还有一点需要注意的是,这个修饰符不能和final连用,原因是abstract中的方法由子类实现,而final修饰的方法必须在本类实现,所以连用这两个修饰法导致自相矛盾,编译无法通过
7、修饰符之final
Final修饰符用来修饰变量,表示它是一个常量,
Final用来修饰一个方法,表示这个方法是终极的只能被继承不能被子类覆盖了.
Final用来修饰一个类表示这个类没有子类,不能被继承 下边逐一说明它的用法
用final修饰变量最常见的就是在一些数学公式中,比如π我们就可以把它看成一个常量
程序如下 package blog;
public class Circle {
private final double PI=3.14;//声明一个常量PI private double radius;
public Circle(double radius) { this.radius = radius; }
public void area() {
System.out.println(\圆面积是:\ } }
package blog;
public class Test {
public static void main(String[] args) { Circle circle=new Circle(1.0); circle.area(); }
}
程序很简单,不多说了,功能就是计算圆面积!
Final用来修饰一个方法表示这个方法不希望被子类覆盖了,想想什么样的方法前面要加这个修饰符呢?还记得在覆盖中我举了一个public int withdraw(int i)银行取钱的例子吗?如果子类覆盖了父类的方法,那是很危险的,在这种情况下在父类中的public int withdraw(int i)方法要加final修饰符,这样子类就没法覆盖这个取钱的方法了
Final用来修饰一个类表示这个类出于安全原因不希望这个类被继承,以免其中的方法被子类覆盖就把这个类声明为final,在JDK中很多我们用到的常用类都是用final修饰的。
还有一点要强调的是final不能和abstract修饰符连用,理由已经说过了,这次加深一下印象,千万别忘记呀!
修饰符就聊到这里了,下次谈谈接口,这是JAVA中最有意思也是最有特色的一部分,一定要好好研究一下,你一定会受益匪浅的!
8、接口
经过前几次的铺垫现在终于进入了Java最有特色的一部分----接口。 什么是接口呢,就是用interface关键字定义的接口。它用于明确的描述对外界所提供的方法(服务)但是并不提供具体的实现,而是由实现它的类去定义 具体的实现。从接口的定义来看好像并不是很难理解,但是由接口派生而出的模式就有很多种了。可以说一句夸张一点的话,没有接口就没有今天的Java。 好了,现在把接口的语法规定详细的介绍一下:
接口中可以有成员变量和成员方法,成员变量的类型默认都是
public,static,final类型的,现在仔细想想由这三个关键字修饰的变量有什么特 点呢?首先它是对外公开的,然后呢它是属于整个类的并非属于某个具体实