面向对象继承

简介: 面向对象继承

继承

继承是多态的前提,没有继承就没有多态

子类可以拥有父类的内容

子类还可以拥有自己专属的内容

定义父类格式(一个普通的父类其实就是一个类)

public class 父类名称 { }

定义子类名称(就是子类名称后面加上一个extends父类名称)

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

再父子类的关系继承中,如果出现成员变量重名,则创建子类对象时有两种访问方式:

直接通过子类对象访问成员变量 (等号左边是谁就优先用谁,没有则往上找)

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

区分子类中方法重名三种

局部变量:直接写成员变量名

本类的成员变量名:this.成员变量名

父类的成员变量名:super.成员变量名

在父子类的关系当中,创建子类对象,访问成员方法的规则

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

重写【override】

重写:方法的名称一样,参数列表【也一样】 覆盖 覆写

重载:方法的名称一样,参数列表【不一样】

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

方法重写的注意事项

必须保证父子类的方法名称和方法参数相同

@Override 写在方法前用来检测是否是有效的覆盖重写

这个注解就算不写只要满足条件也是正确的

子类方法的返回值必须【小于等于】父类方法返回值的范围

子类方法权限必须【大于等于】父类方法权限修饰符

super();用于子类调用父类的构造方法

public Zl() {
    super();
}


三种用法

在子类成员方法中,访问父类成员变量

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

在子类构造方法内,访问父类构造方法

必须是第一个

this()用于访问本类的内容

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

public void mete(){
    System.out.println(this.num);


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

public void mate1(){
    System.out.println("AAA");
}
public void mate2(){
    this.mate1();
    System.out.println("BBB");
}


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

public Zl() {
    this(12);
}
public Zl(int num) {
    this.num = num;
}


}

this调用也必须是第一个也是唯一一个 不能和super方法同时使用


相关文章
|
4月前
|
C# 索引
C# 面向对象编程(二)——继承
C# 面向对象编程(二)——继承
45 0
|
4月前
|
Java C# 索引
C# 面向对象编程(一)——类
C# 面向对象编程(一)——类
35 0
|
6月前
|
Python
面向对象详解,面向对象的三大特征:封装、继承、多态-1
面向对象详解,面向对象的三大特征:封装、继承、多态
|
6月前
|
Python 容器
面向对象详解,面向对象的三大特征:封装、继承、多态-2
面向对象详解,面向对象的三大特征:封装、继承、多态
|
算法 Java 编译器
类和面向对象
类和面向对象
110 0
|
存储 算法 Java
面向对象编程实践:类、对象与继承
面向对象编程实践:类、对象与继承
65 0
浅谈 面向对象三大特性:封装 继承 多态
浅谈 面向对象三大特性:封装 继承 多态
92 0
|
编译器 C++
类和对象-继承
类和对象-继承
66 1
类和对象-继承
面向对象的封装,继承,多态(一)
面向对象的封装,继承,多态。
83 0
面向对象的封装,继承,多态(一)