说到java中类与继承
第一个点就子类的继承性
1.子类与父类在同一包中的继承性
子类自然继承父类中非private成员变量(四种权限:public protected 友好访问权限 private),非private的方法作为自己的方法,其中的访问权限不变
2.子类与父类不在同一包中的继承性
父类中的private和友好权限的成员变量不会被子类继承,其规则如上
第二个点是成员变量的隐藏和方法重写
子类隐藏的成员变量:子类声明变量时候变量名可以与父类重名==》子类对象和子类定义的方法使用了便是重新声明的成员变量
==》子类继承的方法所操作变量是被子类隐藏或继承的成员变量
方法重写:方法名字,参数个数,参数类型必须和父类的方法完全相同(也称方法覆盖),无法操作被子类隐藏的成员变量和方法
子类的构造方法中必须有父类的构造方法,使用super调用父类构造方法,super()说明父类使用默认的构造方法,
无法操作被子类隐藏的方法和变量
第三点abstract类与方法
关键字abstract修饰的类即为抽象类,可以无须含有抽象方法
abstract class A{
abstract int min(int x ,int y);//含有抽象方法的类即为抽象类,只许申明不许实现
int max(int x,int y)
return x>y?x:y;
}
抽象类不能用new 运算符创建对象,故不能用final 和abstract同时修饰一个类。
子类继承抽象类必须实现其方法,除非子类本身也是抽象类。
抽象类中可以存在变量,而接口中不允许存在变量(个人理解,接口中的必须要实现,所以有变量必须为常量)