继承顾名思义就是继承了上一代的基因,就好比人类继承了猿的基因。
父类是类,子类也是类。
父类的定义和类的定义在语法上没有什么区别。
继承的用途是避免写大量的重复代码和将问题变得更加系统化,将一类问题抽象化,从而实现对问题更好的建模。
在java中extends是继承的关键字
用法:
class 子类名 extends 父类名{
语句........
}
父类就是包含所有子类的公共属性的类,比如说动物是父类,父类的属性有吃饭、呼吸、运动。鸟类和爬行类是动物
的子类,鸟类和爬行动物都会吃饭,都会呼吸,都会运动,这些父类的属性都被子类继承了下来,但是鸟类会飞这就
是鸟类的特有属性,这个属性只有鸟类有,爬行动物和父类的属性中都没有,爬行动物会奔跑,但鸟类不会,所以奔
跑就是爬行动物的特有属性,这个属性鸟类和父类动物的属性中都没有。由此可见子类就是继承了父类所有的属性并
加上自己的特有属性。子类就是父类的升级版本。
在java中被final修饰的类不能被继承。
在java中父类的成员方法都可以被继承但构造方法不能被继承。一个子类只能继承一个父类。子类继承了父类之后可以将父类的方法进行重写,继承时重写父类方法可以不改变该方法参数的类型和参数的数量。(由此可以统一子类方法的规范)。
如果写一个类的时候没有用extends关键字来继承某一个类,则它的父类默认是java.lang.Object该类也被称为基类或根类。
代码演示如下:1、
package test_Inherit;
public class Test_Inherit {
int id;
String s = "zzzzzzzz";
public void rabbit(){
System.out.println("eat radish!");
}
}
class son extends Test_Inherit{
String a = "hhhhhhh";
public void rabbit(){
System.out.println("the run little rabbit run!");
}
}
2、
package test_Inherit;
public class Run_Test {
public static void main(String[] args) {
son rabbit = new son();
rabbit.rabbit();
System.out.println(rabbit.a);
System.out.println(rabbit.s);
}
}
运行之后发现rabbit.rabbit()函数被重写了。并且rabbit点可以点出来父类的成员和未被重写的方法