系列文章目录
java必知必会-java环境搭建
java必知必会-java开发工具安装与使用
java必知必会-java关键字、变量和常量
java必知必会-java数据类型和变量定义
java必知必会-java类和对象
java必知必会-java面向对象的三大特性-
前言
上一篇了解完面向对象特性后,本文将详细说说继承的特性
一、什么是继承?
继承是在原有类的基础上新建新的类,原有类称为父类,新的类称为子类。使用java关键字extends表示继承某个类。
范式
public class XXX extends YYY{}
示例代码如下
```java
public class Main {
public static void main(String[] args) {
Son son = new Son();
son.fun();
}
}
class Father{//父类
public void fun(){
System.out.println("父类的方法");
}
}
class Son extends Father{//子类继承父类
}
二、继承有什么特性?
- 子类可以访问父类所有非private修饰的属性和方法
- 父子类中有重复方法则调用子类的方法
- 父子类中有重复属性则调用子类的属性
public class Main {
public static void main(String[] args) {
Son son = new Son();
son.fun();//调用的是子类的方法
System.out.println(son.getName());
}
}
class Father{
protected String name = "父类属性";
public void fun(){
System.out.println("父类的方法");
}
}
class Son extends Father{//子类继承父类
protected String name = "子类属性";
public void fun(){
System.out.println("子类的方法");
}
public String getName(){
return this.name;
}
}
结果
三、什么是重载?
重载(overload)就是同一个类中多个名称相同、参数类型或个数或顺序不同的方法,例如
public class Main {
public void fun(){}//1
public void fun(String name){}//2
public void fun(Integer id,String name){}//3
public void fun(String name,Integer id){}//4
}
1,2,3,4互为重载方法,1与2,3,4参数个数不同,3与4参数顺序不同
注意:返回值和参数名称不同不是重载
四、什么是重写?
重写(override)就是父子类中方法名、参数列表、返回值相同的方法,例如下面的fun方法
重写 的返回值和异常应该小于等于父类的 返回值和异常
重写的访问修饰符要大于等于父类
static方法,final方法,private方法,构造器Constructor不能被继承,因此不能重写
public class Main {
public static void main(String[] args) {
Son son = new Son();
son.fun();//调用的是子类的方法
System.out.println(son.getName());
}
}
class Father{
protected String name = "父类属性";
public void fun(){
System.out.println("父类的方法");
}
}
class Son extends Father{//子类继承父类
protected String name = "子类属性";
public void fun(){
System.out.println("子类的方法");
}
public String getName(){
return this.name;
}
}
总结
本文介绍了java继承与重写、重载,如果有任何疑问欢迎私信或者评论