继承
继承的好处
- 提高了代码的复用性
- 提高了代码的维护性
继承的弊端
- 继承让类与类之间产生了联系,类的耦合性增强了,当父类产生变化时,子类也不得不变化,削弱了子类的独立性
适用范围:
继承体现的关系:is a
存在继承关系,举例:香蕉和水果、猫和动物
继承中变量访问特点
在子类方法中访问一个变量的优先顺序:
- 在子类局部范围查找
- 在子类成员范围查找
- 在父类成员范围查找
…
例:
System.out.println(age);
System.out.println(this.age);
System.out.println(super.age);//访问父类的变量age
继承中构造方法访问特点:子类中所有构造方法都会默认访问父类的无参构造方法
因为子类会继承、使用父类的数据,所以子类初始化之前,一定要先初始化父类,每一个子类构造方法第一条默认语句都是super();
继承中成员方法访问特点
通过子类一个对象访问成员方法时:
- 子类成员范围内查找
- 父类成员范围内查找
…
继承的注意事项
JAVA中不能多继承
JAVA中支持多层继承
方法重写
子类可以重写声明和父类成员方法一模一样的成员方法来实现特有功能。
例:
public class NewPhone extends Phone{
public void call(String name){
System.out.println("开启视频功能");
//System.out.println("给"+name+"打电话");
super.call(name);//沿袭父类功能
}
}
方法重写注意事项
- 私有方法不能被重写
- 重写方法访问权限不能更低
修饰符
package
import:
同一个包中的类可以直接使用,但是使用不同包的类时,要写类所在的全路径,太过于麻烦。
为了简化带包的操作,java就提供了导包的功能,例如:
平时经常使用的import java.util.Scanner;
就是导入了Scanner类。
再例如:import com.itheima_01.Teacher;
这样就可以在导入了此包的其他包的类中创建Teacher类的对象了。
权限修饰符
final
添加了final修饰的类、成员变量、成员方法都是最终形态,即类不能被继承,变量值表明为常量不能被修改,方法不能被重写
例如public class Fu{
}和
public final class Fu{
}
- 当 final修饰基本数据类型,则值不能发生改变
- 当 final修饰引用数据类型,如类的对象,则是地址值不能发生改变,其内容还是可以改变
static
static修饰的成员变量被所有类的对象共享
例如Student类中:public static String univarsity;
其对象中可以写Student.univarsity(“哈佛大学”);
静态成员方法只能访问静态的成员和静态的方法;
版权声明:本文为JChalice原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。