美文网首页java学习笔记
java学习笔记(八)继承

java学习笔记(八)继承

作者: Broken故城 | 来源:发表于2020-03-09 08:56 被阅读0次

个人笔记,仅供参考

1、概述

面向对象的三大特性之一,是多态的前提

主要解决的问题是共性抽取,用于抽取类之间相同的部分

子类可以拥有父类的内容,也可以拥有自己的内容

2、继承的格式

父类就是普通的类

子类:

public class 子类的名称 extends 父类名称{
}

举例

父类:

//定义一个父类,员工
public class Employee {
    public void method(){
        System.out.println("方法执行");
    }
}

子类:

public class Teacher extends Employee{
}

创建子类对象并使用继承下来的方法

public class ExtendsDemo {
    public static void main(String[] args) {
        Teacher teacher = new Teacher();
        //Teacher类当中虽然什么都没有,但是会继承父类
        teacher.method();
    }
}

注意:子类也可以是父类

3、访问成员变量的特点

没重名的按正常的方法就好,子类和父类的成员变量重名了就需注意以下几点:

有两种访问方法:

1、直接通过子类对象访问成员变量

​ 等号左边是谁,就优先用谁,没有则向上找

2、间接通过成员方法使用成员变量

​ 通过间接的成员方法访问成员变量,该方法属于谁就优先用谁

三种重名同时出现

即局部变量,本类成员变量,父类成员变量同时重名,用一下方法区分

局部变量: 直接使用
本类成员变量:this.成员变量名
父类成员变量: super.成员变量名

4、成员方法的访问

没重名正常用即可

重名时,创建的对象是谁,就优先用谁,没有则向上找

注意:无论成员方法还是成员变量,如果没有,都是向上找父类,不会向下找子类

5、方法的重写

重写概念(override):在继承关系中,方法的名称一样,参数列表也一样,也叫方法的覆盖

特点:创建的是子类对象,则优先用子类方法

注意

​ 1、必须保证父类子类之间的名称相同,参数列表也相同。可以在方法前写上@Override用来判断是否是有效重写(报错就是无效重写)

​ 2、子类方法的返回值必须小于等于父类方法的返回值(范围)

​ 3、子类方法的权限,必须大于等于父类方法的权限修饰符

public > protected > (default) > private
default是留空,什么都不写

什么情况使用重写

方法的功能增加时,为了不影响使用父类,这时会使用重写

6、构造方法的访问特点

父类和子类的构造方法都会执行,先执行父类再执行子类

注意:

​ 1、子类构造方法中有一个默认隐含的super()调用

​ 2、可以通过super关键字来使子类构造调用父类重载构造

​ 3、super的父类构造调用,必须是子类构造方法的第一个语句

​ 4、子类必须调用父类构造方法,不写则默认用父类无参构造

7、super关键字的三种用法

1、在子类的成员方法中访问父类的成员变量

public void methodZi(){
    System.out.println(super.num);
    //调用父类中的num
}

2、在子类的成员方法中,访问父类的成员方法

super.mehod()

3、在子类的构造方法中,访问父类的构造方法

super()

8、this关键字的三种用法

super用来访问父类内容,而this关键字用来访问本类内容

1、在本类的成员方法中,访问本类的成员变量

2、在本类的成员方法中,访问本类的另一个成员方法

3、在本类的构造方法中,访问本类的另一个构造方法

注意:第三种用法中this(...)必须是构造方法的第一个语句(唯一一个)

public Zi(){
    this(123);//本类的无参构造,调用本类的有参构造
}
public Zi(int n){

}

9、java继承的三个特点

1、JAVA语言是单继承的(一个类的父类只有唯一一个)

2、JAVA语言可以多级继承,最顶级是java.lang.Object类

3、一个子类的直接父类是唯一的,但一个父类可以用多个子类

相关文章

  • java学习笔记(八)继承

    个人笔记,仅供参考 1、概述 面向对象的三大特性之一,是多态的前提 主要解决的问题是共性抽取,用于抽取类之间相同的...

  • Java学习笔记------继承

    http://www.runoob.com/java/java-inheritance.html 概念: 继承就是...

  • java学习day08-继承、多态、组合

    java学习第八天内容总结: 学习内容: 总结: 1、继承:extends → 拓展 作用: 1) 解决代码...

  • java 学习笔记(3)-继承

    合成与继承的区别 合成就是在一个类中,用一个句柄使用另一个类的方法。继承就是继承了一个类的方法后,再添加新的,或者...

  • Java 学习笔记(6)——继承

    之前说过了Java中面向对象的第一个特征——封装,这篇来讲它的第二个特征——继承。一般在程序设计中,继承是为了减少...

  • Java学习笔记(Java中的继承)

    一、概述 面向对象编程中,继承是一个比较重要的概念,继承描述的是事物之间的所属关系,是从已有的类中构建出新的类,已...

  • java继承以及继承中的构造方法

    本文为学习笔记 能力有限 如有错误望指正。谢谢!!! 继承: 1.java中使用extends关键字实...

  • 2017-12-29

    Java学习日记(4) 主要谈一下——继承extends 个 Tips : Java不像c++,Java是单继承(...

  • Effective Java学习笔记-继承篇

    Section 4 Article 14 复合优于继承 不适当的使用(超类并不是为了扩展而设计)继承会导致脆弱的软...

  • 想要成为VIP等级玩家吗 先来学学继承

    java零基础入门-面向对象篇(八) 继承 与 封装 每次看到继承就勾起了我当年学习这块知识的时候,那痛苦不堪的回...

网友评论

    本文标题:java学习笔记(八)继承

    本文链接:https://www.haomeiwen.com/subject/ccaydhtx.html