Java之继承与多态

一、继承

1、定义格式:

public class 子类类名 extends 父类类名
{

}

2、必然包含子类与父类才可以谈得上是继承。

3、extends作为Java中的关键字,表示子类与父类之间的继承关系

4、Object类作为Java中一切类的父类。

1)但某一个类没有明确表明继承哪个父类时,Object类就是它的父类。

若说明了继承某个父类,则称该类是间接继承Object类。

5、子类一旦继承父类,即拥有了父类中的除被private修饰的一切方法和成员变量;

同时子类还可以添加自己的方法和成员变量。

形象地描述为黑发(父类的成员变量)父亲(父类)的黑发(子类的成员变量)儿子(子类),今年1岁(子类的成员变量)了,在学习爬行(子类的方法)。

6、父类中被final修饰的类无法被继承,更无法被重写。(因为根本没有被子类继承过去。)

7、一个子类可以被其他类继承。

扫描二维码关注公众号,回复: 566387 查看本文章

8、“Java中只有单继承,没有多继承。也就是一个子类只能继承于一个类,拥有一个父类。”

9、通过super关键字可以表示当前类的父类的对象,并且在子类中使用父类的对象。

与this的区别:this表示的是当前类的对象

10、方法重写:子类继承了父类的方法后,可以对父类的方法进行重写。但重写的方法必须与父类中被重写的方法的名称、参数列表、返回值一模一样。

区别于方法重载:方法重写涉及两个类,一个父类,一个子类。

方法重载指在同一类中多个方法的方法名相同,但参数的数量及类型不相同。

二、多态

1、定义:同一个类中有多个对象,它们的同一个行为有不同的实现方式,并有不同的实现结果。

2、存在条件:

1)必须含有继承或者实现关系(实现这种关系后面会讲)
2)调用相同的方法,而执行不同的代码,产生不同的结果(方法的重写)
3)父类的引用可以指向子类的对象

三、对象的上下转型

1、向上转型:子类对象转为父类对象,这个转型是安全的,但是可能会丢失方法。

2、向下转型:父类对象转为子类对象,这个转型不要安全,需要instanceof关键字来协助转换。

一般采用if条件语句:

if(父类对象 instanceof 子类类名){
   子类对象=(子类类名)父类对象;
}else{
   System.out.println("错误");
}
该代码的意思是:如果能够实行向下转型则转型成功,如果不能则输出“错误”。

四、动态绑定与静态绑定

1、静态绑定

1)该绑定是程序编译时进行的。即编译时就可以确定条用的方法属于哪个对象。

2)“Java中的构造方法和被final、static或者private修饰的方法都是静态绑定”

2、动态绑定

1)该绑定在程序运行时进行的,“根据变量的实际引用类型决定调用哪个方法

”。

3、“多态是基于对象的动态绑定特性”

三、补充

如果没有明确指明构造方法,默认每个类中有构造方法,并且构造方法如下:

public 类名(){
}

猜你喜欢

转载自blog.csdn.net/qq_41187714/article/details/79874575