大家好 ,今天又到了愉快的周四,今天继续给大家分享java基础的学习笔记,希望能帮助到大家
继承:
定义父类的格式:(一个普通的类定义)
public class Fu {
int num = 20;
// ...
public void method(){
Sout(num);
}
}
定义子类的格式:
public class Zi extends Fu {
int num = 10;
// ...
}
在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:
1,直接通过子类对象访问成员变量:
等号左边是谁,就优先用谁,没有则向上找。
2,间接通过成员方法访问成员变量:
该方法属于谁,就优先用谁,没有则向上找。
局部变量: 直接写成员变量名
本类的成员变量: this.成员变量名
父类的成员变量: super.成员变量名
重写(Override)
概念:在继承关系当中,方法的名称一样,参数列表也一样。
重写(Override):方法的名称一样,参数列表【也一样】。覆盖、覆写。
重载(Overload):方法的名称一样,参数列表【不一样】。
方法的覆盖重写特点:创建的是子类对象,则优先用子类方法
方法覆盖重写的注意事项:
1. 必须保证父子类之间方法的名称相同,参数列表也相同。
@Override:写在方法前面,用来检测是不是有效的正确覆盖重写。
这个注解就算不写,只要满足要求,也是正确的方法覆盖重写。
2. 子类方法的返回值必须【小于等于】父类方法的返回值范围。
小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类。
3. 子类方法的权限必须【大于等于】父类方法的权限修饰符。
小扩展提示:public > protected > (default) > private
备注:(default)不是关键字default,而是什么都不写,留空。
Super的三种用法
1,在子类的成员方法中,访问父类的成员变量
2,在子类的成员方法中,访问父类的成员方法
3,在子类的构造方法中,访问父类的构造方法
This的三种用法
1,在本类的成员方法中,访问本类的成员变量
2,在本类的成员方法中,访问本类的另一个成员方法
3,在本类的构造方法中,访问本类的另一个构造方法
抽象类
什么是抽象
1,不具体,不明确
代码中的也是,不明确的功能我们定义成抽象的
用abstract 修饰是类是抽象类,用abstract的方法就是抽象方法
比如,动物类,范围很广 那每个动物有吃的行为。那具体动物吃什么就是抽象的
2,
3,格式
a)抽象类
i.Public abstract class Animal{
Public void eat(){
}//抽象方法
Public void method(){//普通的成员方法
System.out.println(“……”);
}
}
如何使用抽象类和抽象方法:
1. 不能直接创建new抽象类对象。
用abstract修饰的方法没有方法体,括号后分号结束
2. 必须用一个子类来继承抽象父类。
3. 子类必须覆盖重写抽象父类当中所有的抽象方法。
覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号。
4. 创建子类对象进行使用。
|
|