多态

多态的概念;

当不同的对象完成是产生不同的状态

要实现多态的条件(1.向上转型   2.子类和父类有同名的覆盖/重写的方法  3.通过父类对象调用父类和子类重写的方法)

什么是向上转型

父类类型  对象名= new 子类类型

什么是重写

子类和父类的方法名一样,参数列表一样,返回值一样,可以使用@override来注解

注意事项:1.被final,static,private修饰的方法不能进行重写,

2.父类的访问修饰限定符一定要小于等于子类的访问修饰限定符

3.方法的返回值可以不相同但是必须是父子类关系

4.构造方法不能重写

什么是动态绑定?

(先向上转型,然后通过父类引用调用父类和子类重写的方法,调用子类的方法,运行时的过程就叫动态绑定)

什么是静态绑定?

在程序运行前就知道方法是属于哪个类,在编译是直接连接到那个类中

什么是向下转型

就是让父类调用子类独有的方法,子类类型 类名=(强制转换)父类类名,但是要加instanceof增加安全性

什么是多态

当引用的子类的对象不一样的时候,通过父类的引用调用重写的方法,

 

向上转型:

有3种方法

1.直接赋值

2.方法传参的方式(把父类的类名当作参数)

3.返回值(定义返回的类型最好是父类)

 2.子类和父类有同名的覆盖/重写的方法

方法的重写:子类和父类的方法名一样,参数列表一样,返回值一样

 

 

动态绑定

 

 

向下转型

 

 

多态

先把子类对象实例化,然后使用向上转型把父类的类型当作参数,调用重写的方法,最后在调用向上转型方法把子类要输出的东西放进去,从而达到想要输出的东西

 

抽象类

abstract修饰的类叫抽象类,抽象类不可以实例化,但是内部可以包含普通的成员方法和成员变量,抽象类只能用来被继承

当一个类含有抽象方法时,该类必须使用abstract修饰

abstract修饰的方法叫抽象方法,不能是private和static修饰的

final和abstract是不能同时存在的

抽象类里面的抽象方法可以不写代码块

 

posted @ 2024-10-16 14:43  油头男孩  阅读(10)  评论(0编辑  收藏  举报