继承:继承和多态是java重要的一部分,继承是一种减少重复程序代码的机制,将多个类相同的实例变量和方法(还有构造函数)抽象成一个类中所拥有的,这个类就是前面那几个类的父类。 这么说有点...
从另一方面说,如果一个类继承了一个类,那么它就继承了那个类的实例变量和方法(权限允许的话)。
怎么才能确定谁是父类和谁又是它的子类呢?
书里面是用了“is a”方法,即:葡萄酒是酒,那么葡萄酒类就是酒这个类的子类,酒类就是父类;白葡萄酒是葡萄酒,即白葡萄酒类是葡萄酒的子类,子类的子类也能通过“is a”方法,即白葡萄酒也是酒。
例如:类A继承类b;class A extends B;那么A就会拥有类B的实例变量和方法(包括构造函数)。
子类A也可以覆盖从类B继承下来的方法,要求子类方法要与父类方法的方法名,参数都相同,且返回类型要兼容(即返回类型相同或者是该类型的子类)。覆盖的时候不可以降低方法的存取权限。
还有方法重载,重载与覆盖不同,重载的返回类型可以不同,可以改变方法的存取权限,参数也需要不同,与覆盖一样的是方法名是相同的。(参数不同,返回类型相同或不相同都是重载。
继承中的方法调用顺序是先在子类中调用该方法,若子类中没有该方法就向它的父类调用
,如果子类覆盖了该方法,就会调用覆盖后的方法;若调用完子类的方法,还想调用父类中的同名方法,就要用supper来调用,例如:supper.方法名();
多态:多态是建立在继承的基础上的,当运用多态时,引用类型可以是实际对象类型的父类;就是可以使用父型作为方法的参数和返回类型或者是数组的类型。这样的话在扩充程序时你只需要新建一个集成父类的新建类,不需要修改已经编写好的代码。例如
class A{
void go(A a){ //A中的方法go,参数是A的实例。
System.out.printf(“duo tai ”);
} }
class B extends A{ //B会继承A类的go方法,
}
class F extends B { //F又会继承B类所继承的方法。
}
class C_Test{
public static void main(String[]args){
A d=new B(); //引用类型为类A的,所引用的确实B类对象
B b=new B();
F f=new F();
d.go(f); ,//引用变量d调用go方法,参数是F类的实例,则会执行F类中的go方法
d.go(b) //引用变量d调用go方法,参数是B类的实例,则会执行B类中的go方法
} } //所以说go这个方法可以取用任何一种A,只要所传入的是A子类的对象,方法都能运行,
如果需要不同于父类A的输出,只要在子类中将继承下来的父类方法覆盖即可,
例如:void go(A a){
System.out.printf(“duo tai ”);} //是覆盖还是重载的关键在于参数(入参)和返回类型。
如果子类中定义的是父类方法的重载,那在调用时不会调用重载的方法而会调用父类中的方法。
编写程序代码时将参数声明成父类类型,可以在运行的时候传入任何的子类对象,运行结果是什么就看你在子类中是否覆盖父类中的该方法,若覆盖了就是子类覆盖方法中的结果,若没有则是父类方法中的结果。
分享到:
相关推荐
Java继承和多态
本篇文章将围绕Java继承和多态机制的深入讲解,探索它们是如何促进代码的灵活性和扩展性的。 ### 继承机制 继承,作为面向对象编程的基石之一,允许我们将一个类的属性和行为传递给另一个类,从而实现代码的复用。...
java 继承和多态PPT教程
在深入探讨Java继承与多态的综合练习之前,我们首先需要明确Java中继承和多态的基本概念和重要性。Java是一种面向对象的编程语言,其核心特性之一就是对象的继承性。继承允许新创建的类(子类)继承父类的属性和方法...
学习Java继承和多态,特别是通过接口来实现,对于深入理解Java语言和面向对象设计模式至关重要。 继承(Inheritance)是面向对象编程中一个对象获得另一个对象的属性和行为的过程。在Java中,继承通过使用extends...
Java继承和多态是面向对象编程中非常重要的概念,它们是面向对象程序设计的核心思想之一。继承主要是为了代码复用和类之间层次关系的建立,而多态则是为了实现代码的通用性和灵活性。 继承允许我们定义一个新类,这...
本实验报告的目的是为了掌握Java语言中的继承和多态机制,通过模拟编写程序,理解类的继承、多态、继承和多态规则,并独立编程,实现类的继承和多态。 继承机制 在Java中,继承是一种机制,允许一个类继承另一个类...
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
在Java中,多态分为编译时多态和运行时多态。编译时多态主要通过方法重载实现,运行时多态主要通过方法重写(Override)和接口实现实现。 **2. 方法重写** 当子类继承父类并覆盖(Override)父类的某个方法时,这...
Java继承和多态接口优化代码结构 在Java编程中,继承、多态和接口是面向对象编程(OOP)的核心概念,对于优化代码结构具有至关重要的作用。继承允许类之间形成层次关系,实现代码的复用;多态则增强了代码的灵活性...
1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字
JAVA继承和多态实验报告.doc
内容概要:本文详细介绍了Java中的继承和多态两大核心概念。首先从基础知识入手,解释了继承的定义、关键字extends和super的使用、父类与子类的关系等。接着讨论了多态的定义、方法重载和重写的区别、向上转型与向下...
### 详解Java接口、继承和多态 #### 一、Java接口 在Java中,接口是一种定义行为的方式,它提供了一种实现抽象方法的手段。通过接口,开发人员可以为类定义一组方法签名,但不提供这些方法的具体实现。这有助于...
java 实验 继承与多态rectAngle 定义矩形类,用户输入矩形的长与宽,程序计算其面积和周长;派生子类正方形类,定义一个接口Printable源代码