【Java】方法的重写和多态

分享第三条励志语句

人生中要走很多路,有一条路不能回头,就是放弃的路;有一条路不能拒绝,就是成长的路;有一条路不能迷失,就是信念的路;有一条路不能停滞,就是奋斗的路;有一条路不能忘记,就是回家的路;信心满满的走好脚下的每条路,祝你生命中的每一天都很精彩。

目录

分享第三条励志语句

方法重写

 Object类

 多 态

多态和继承总结


方法重写

  ( 1)如果从父类继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写     (覆盖),以符合需求。


(2)方法重写(方法覆盖)必须满足如下要求:

-->重写方法和被重写方法必须具有相同的方法名

-->重写方法和被重写方法必须具有相同的参数列表

-->重写方法的返回值类型必须和被重写方法的返回值类型相同或者是其子类

-->重写方法不能缩小被重写方法的访问权限。


(3)方法重载和方法重写的区别

 

 

 Object类

(1)Object类是所有类的父类。

(2)在Java中,所有的类都直接或者间接地继承了java.lang.Object类。


(3)Object类是所有Java类的祖先。


(4)在定义一个类时,没有使用extend是关键字,也就是没有显示地继承某个类,那么这个类直接继承Object类。


(5)所有对象都继承Object类中的方法。

(6)Object类中的equals()方法用来比较两个对象是否是同一对象,若是,返回true,字符串对象的equals()方法用来比较两个字符串的值是否相等,java.lang.String类重写了Object类中的equals()方法。

 

 多 态

1、 认识多态

(1)多态一词的通常含义是指能够呈现出多种不同的形式或形态。

(2)在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且自动地调用引用的对象的方法,也就是根据作用到的不同对象类型,响应不同的操作。

(3)方法重写是实现多态的基础。

(4)多态意味着在一次方法调用中根据包含的对象的实际类型(即实际的子类对象)来决定应该调用哪个方法,而不是由用来存储对象引用的变量的类型决定的。

当调用一个方法时,为了实现多态的操作,这个方法既是在父类中声明过的,也必须是在子类中重写过的方法。


2、 向上转型

(1)向上转型:子类向父类的转换称为向上转型。

(2)向上转型的语法格式如下:

<父类型> <引用变量> = new <子类型>();

-->将一个父类的引用指向一个子类对象称为向上转型,系统会自动进行类型转换。

-->此时通过父类引用变量调用的方法是子类覆盖或继承了父类的方法,不是父类的方法。

-->此时通过父类引用变量无法调用子类特有的方法。


3、 向下转型

(1)向上转型中,父类引用变量无法调用子类特有的方法,如果需要调用子类特有的方法,可以通过把父类转换为子类来实现。

(2)向下转型:将一个指向子类对象的父类引用赋给一个子类的引用,即将父类类型转换为子类类型,称为向下转型,此时必须进行强制类型转换。

(3)向下转型的语法格式如下:

<子类型> <引用变量名> = (<子类型>)<父类型的引用变量>;

(4)上述这种向下转型的操作对接口和抽象(普通)父类同样适用。


4、 instanceof运算符

(1)在向下转型的过程中,如果不是转换为真实子类类型,会出现类型转换异常(ClassCastException)。

(2)在Java中提供了instanceof运算符类进行类型的判断。

(3)使用instanceof时,对象的类型必须和instanceof后面的参数所指定的类有继承关系,否则会出现编译错误。

(4)instanceof通常和强制类型转换结合使用。


5、多态的优势主

-->可替换性:多态对已存在的代码具有可替换性。

-->可扩充性:多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特征的运行和操作。实际上新加子类更容易获得多态功能。

-->接口性:多态是父类向子类提供了一个共同接口,由子类来具体实现。

-->灵活性:多态在应用中体现了灵活多样的操作,提高了使用效率。

-->简化性:多态简化了应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。


6、多态的两种主要应用形式

1、 使用父类作为方法的形参

2、 使用父类作为方法的返回值

多态和继承总结

1、 继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类。Object类是所有Java类的祖先。
 

2、 在子类中可以根据实际需要对从父类继承的方法进行重新编写,称为方法的重写或覆盖。
 

3、 子类中重写的方法和父类中被重写的方法必须具有相同的方法名、参数列表,返回值类型必须和被重写方法的返回值类型相同。
 

4、 在实例化子类是,会首先执行其父类的构造方法,然后在执行子类的构造方法。
 

5、 通过super关键字可以访问父类的成员。
 

6、 通过多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性。继承是多态的基础,没有继承就没有多态。
 

7、 在多态的应用中,可以使用父类作为方法的形参,还可以作为方法的返回值。
 

8、 把子类转换为父类称为向上转型,系统自动进行类型转换。把父类转换为子类,称为向下转型,必须进行强制类型转换。
 

9、向上转型后,通过父类引用变量调用的方法是子类覆盖或继承自父类的方法,通过父类引用变量无法调用子类特有的方法。
 

10、 向下转型后可以访问子类特有的方法。向下转型必须转换为父类指向的真实子类类型,否则将出现类型转换异常ClassCastException。
 

11、 instanceof运算符用于判断一个对象是否属于一个类。

今天的分享就到此为止了,让我们一起学习,加油!加油!




我们没有什么不同的,虽然我现在落后于很多人,但是我有一颗上进心,我希望我自己会很快的走出困境,以前学不会就会着急,最后把自己的心态搞崩了,最后学也没有学好,高考也辜负了我,幸好,我现在还有一次学习的机会改变自己,无论是我还是你们,我都希望不要遇到挫折就一蹶不振,我们都要往前看,程序猿们,等着我成为你们的一员吧,加油!!!




创作不易点赞评论互关三连

 

猜你喜欢

转载自blog.csdn.net/swy2560666141/article/details/126959480