java学习第九次学习笔记
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、继承
1.继承的概念
继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法
实现继承的格式
继承通过extends实现
格式:class子类extends父类{ }
举例:class Dog extends Animal { }
public class Fu{
public void how(){
System.out.println("how方法被调用");
}
}
public class Zi extends Fu{
public void method(){
System.out.println("method方法被调用");
}
}
public class Demo{
public static void main(String[]args){
//创建对象,调用方法
Fu f=new Fu();
f.how();
Zi z=new Zi();
z.method();
z.how();
}
}
2.继承中变量的访问特点
在子类方法中访问一个变量,采用的是就近原则。
1.子类局部范围找
2.子类成员范围找
3.父类成员范围找
4.如果都没有就报错(不考虑父亲的父亲…)
3.super
this&super关键字:
this:代表本类对象的引用
super:代表父类存储空间的标识(可以理解为父类对象引用)
this和super的使用分别
成员变量:
this.成员变量-访问本类成员变量
super.成员变量-访问父类成员变量
成员方法:
this.成员方法-访问本类成员方法
super.成员方法-访问父类成员方法
构造方法:
this(…)-访问本类构造方法
super(…)-访问父类构造方法
二、方法重写
1.方法重写概念
子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)
2.方法重写的应用场景
当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了
父类的功能,又定义了子类特有的内容
3.@Override注解
用来检测当前的方法,是否是重写的方法,起到【校验】的作用
public class Fu{
private void how(){
System.out.println("Fu中how()方法被调用");
}
void method(){
System.out.println("Fu中method()方法被调用");
}
}
public class Zi extends Fu{
/*编译【出错】,子类不能重写父类私有的方法*/
@Override
private void show(){
System.out.println("Zi中how()方法被调用");
}
/*编译【出错】,子类重写父类方法的时候,访问权限需要大于等于父类*/
@Override
private void method(){
System.out.println("Zi中method()方法被调用");
}
/*编译【通过】,子类重写父类方法的时候,访问权限需要大于等于父类*/
@Override
public void method(){
System.out.println("Zi中method()方法被调用");
}
}