说到继承,在现实生活中,继承一般指的是子女继承父辈的财产。在Java程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如汽车和公交车都属于交通工具,程序中便可以描述为汽车和公交车继承自交通工具,同理,雪佛兰和大众都继承自汽车,而宇通和金龙都继承自公交车。这些交通工具会形成一个继承体系。继承基本上就是避免多个类间重复定义共同行为,可以把相同的程序代码提成为父类。
在Java中,类的继承是指在一个现有的类的基础上去构建一个新的类,构建出来的新的类被称作子类,现有的类被称作父类,子类会自动拥有父类所有可继承的属性和方法。在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。
运行结果:
Cars类通过extends关键字继承了Vehicle类,这样Cars类便是Vehicle类的子类。子类虽然没有定义brand属性和move()方法,但是确能访问这两个成员。
1.在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类。
2.多个类可以继承一个父类
3.在Java中,多继承是可以的,即一个类的父类可以再去继承另外的父类。
4.在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另外一个类的子类。
另外,private的成员会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取(如setter和getter)。
在继承关系中,子类会自动继承父类中定义的方法(不被private修饰的方法),但有时在子类中需要对继承的方法进行修改,即对父类的方法进行重写(Override),需要注意的是,在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。
运行结果:
子类重写父类方法时,不能使用比父类中被重写的方法更严格的访问权限。
在Java中,子类与父类之间有“是一种”的关系,即子类是一种父类,如汽车是一种交通工具,公交车也是一种交通工具。所以:Vehicle cars = new Cars();也是可以通过编译,即父类引用指向子类对象,使用单一接口操作多种类型的对象,就是所谓的多态。活用多态可以让代码更有弹性及可维护性。