1.继承
首先,我们要明白继承这个概念,也就是获得"前人"的东西。而在java的类中,继承也就是获得上一个类(我们把它定义为父类)的一些东西,比如说父类中的属性,方法等(但是不能继承主方法),继承后的类,我们称之为子类。
2.继承的方式
java中继承的方式分为4种,分别为公有继承(public)、私有继承(private)、保护继承(protected) 以及缺省(也是空白,不写),下面为它们一些的区别
使用权限/继承方式 | public | protected | 缺省 | private |
---|---|---|---|---|
当前类中 | √ | √ | √ | √ |
同一个包下 | √ | √ | √ | |
不同包下的子类 | √ | √ | ||
其他(比如说不同project下) | √ |
注意:继承中,子类能够拥有父类中的所有属性和方法,但是会限于访问权限。
public class jichenguse {
String name;
int Score;
private void study(){
System.out.print(name+"获得"+Score);
}
而在另一边
public class jicheng extends jichenguse {
public static void main(String[] args) {
jicheng ch=new jicheng();
ch.name="学生";
//运用study这个方法的时候会报错
ch.study()
3.重写和自动转型
继承之后的子类中,我们需要的一些属性或方法是父类中没有的,或者子类的一些属性和父类不同,这个时候我们就需要运用到重写和自动转型
重写
父类中的属性或方法不能满足子类的需要,我们可以直接在子类中写即可,这样会覆盖父类中这个类型的属性或者方法
public class jichenguse {
String name="学生";
int Score;
public void study(){
System.out.println(name+"获得"+Score);
}}
在另一边,我们写下
public class jicheng extends jichenguse {
public static void main(String[] args) {
jicheng ch=new jicheng();
ch.name="大学生";
//这里最后运行的结果是大学生,覆盖了父类
System.out.println(ch.name);}}
重写的注意事项:
1.子类和父类必须要有继承关系 extends
2.方法的声明在子类中可见
3.子类中方法的声明,访问权限可以扩大,但是方法返回值类型,方法名,参数必须一样
自动转型
子类可以自动变为父类类型的对象
注意
自动转型后,方法的调用的内容以子类为准