0
点赞
收藏
分享

微信扫一扫

JavaSE学习总结(八)继承与多态

静鸡鸡的JC 2022-03-20 阅读 54
学习java

一、继承

  1. 什么是继承
    继承是面向对象程序设计时使代码复用的手段,是对原有类的扩展,增加新功能,产生派生类的过程。
  2. 为什么要有继承
    为了:共性的抽取,实现代码的复用。
  3. 如何实现继承
    使用关键字extend
    需要注意的是:
  1. 类内成员的访问

访问规则:遵循就近原则,子类有该成员就优先访问子类的,如果没有就在父类中找。若父类也没有就报错。当父子类中有同名成员时亦遵循此原则。
问题:那么,当父子类中有同名成员时,该如何越过子类成员的就近原则去访问父类成员呢?

  1. super关键字
    答案就是使用super.

super的作用:在子类方法中访问父类的成员。
super的使用禁忌:只能在非静态方法中使用;在子类方法中,访问父类的成员变量和方法

public class Base{
 	int a;
 	int b;
 	public void funA(){
 		System.out.println("Base的funA()");
	}
	public void funB(){
	 	System.out.println("Base的funB()");
	}
 
}

public class Derived extends Base{
 	int a;
 	int b;
 	public void funA(int a){  //与父类方法发生重载
 		System.out.println("Derived的funA()");
	}
	public void funB(){
	 	System.out.println("Derived的funB()");
	}
	public void funC(){
		a=100;//这里用的是子类自己的a,相当于this.a
		super.a=200;//这里获取的是继承自父类的a
		funB();//这里是Derived的funB()
		super.funB();//这里获取的是继承自父类Base的funB()
	 	System.out.println("Derived的funC()");
	}
 
}


  1. 父与子的构造方法
    在子类对象构造时,需要先调用父类构造方法,然后执行子类的构造方法
    这么做的原因是:子类的对象同时也是一个父类的对象,在子类构造子类对象的时候,先要将从父类继承下来的成员初始化完整,然后再初始化子类自己新增的成员。

需要注意的是:

  1. super与this
    共同点:
    (1) 只能在非静态方法中使用,用来访问非静态成员方法和字段
    (2)在构造方法中使用的时候必须是构造方法下的第一句,并且不能同时出现。
    不同点:
    (1)this是对当前对象的引用,super是对父类继承下来的成员的引用。
    (2)this是被非静态成员方法隐藏的一个参数,super则不是。
    (3)this()用来调用本类构造方法,super()用来调用父类构造方法,二者不能能时出现。

  2. 初始化时的执行顺序

父类静态代码块—>子类静态代码块–>父类实例代码块–>父类构造方法–>子类实例代码块–>子类构造方法。
注意:第二次实例化时,静态代码块将不会再执行。

  1. 继承的方式

可以:单继承、多层继承、不同类继承同一个类;
不可以:多继承,java不支持多继承

  1. final关键字

(1) 当修饰变量或字段时:表示这是个不能修改的常量;
(2)当修饰类时:此类不能被继承
(3)当修饰方法时:该方法不能被重写

二、多态

  1. 什么是多态:
    在完成某个行为的时候,当不同的对象去完成时会产生出不同的状态;在代码运行时,当传递不同对象的时候,会调用对应类的方法。

  2. 如何实现多态
    (1)必须在继承体系下;
    (2)子类必须要对父类的方法进行重写
    (3)通过父类的引用调用重写的方法

  3. 什么是重写

又称覆盖,是子类对父类方法的实现过程进行重写编写,返回值与形参都不能变

重写的规则:
(1)修饰符、返回值、方法名、参数列表要完全一致;
(2)被重写的方法访问权限要大于等于父类原本方法的访问权限;
(3)static、private、final修饰的方法、构造方法都不能重写
(4)重写的方法用@Override注释

  1. 向上转型和向下转型

    向上转型:安全的转型,父类引用引用子类对象,可以让代码更灵活例如:

Animal cat=new Cat();

向下转型:不安全

在这里插入图片描述

举报

相关推荐

0 条评论