类的高级特性
类的高级特性(一)
1.抽象类
抽象类只声明方法的存在而不去具体实现它的类。
a.抽象类不能被实例化。
b.抽象方法:抽象类中创建的,没有实际意义的,必须要由子类实现的方法。
关键字:abstract
语法格式:
abstract class Fruit { //定义抽象类
public String color ; //定义颜色
public Fruit(){ //定义抽象方法
color = "绿色"; //对变量color进行赋值
}
}
abstract <方法返回值类型> 方法名 (参数列表) ;
定义抽象方法 : public abstract void harvest () ;
2.内部类
作用:内部类可以直接存取其所在类的私有成员变量。
语法格式:
public class Outerclass{ //外部类
private int i = 0 ;
private void g() {
}
private class Innerclass{ //内部类
g();
i++;
}
}
图解:
内部类的实例一定要绑定在外部类的实例上。
如果在外部类中初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上。
内部类初始化方式与其他类初始化方式相同,都是使用new关键字。
内部类与外部类关系图解:
内部类对象与外部类对象关系非常紧密。
内部可以交互使用彼此类中定义的变量。
如果在外部类和非静态方法之外实例化内部对象,需要使用“外部类.内部类”的形式。
如果外部类中定义的成员变量与内部类的成员变量名称相同,可以使用this关键字。