Java继承——方法重写

简介: Java继承——方法重写

一、概念

什么是方法重写,重载(方法名称一样,参数列表不一样),重写(完成做到重写,都一样,实现功能不一样)

方法重写是指子类可以根据需要对父类继承来的方法进行改写,是多态机制的前奏
注意点
重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值
public void printInfo(){

super.printInfo();                        //用super调用父类方法
System.out.println("子类name=" + name);    //不写父类的会优先调用子类方法

}

重写方法不能比被重写方法有更加严格的访问权限
private void printInfo(){

super.printInfo();                        
System.out.println("子类name=" + name);    

}

父类中的私有方法,不能被重写
能写上,但是主函数不能调用,报错
private void printAddr(){

System.out.println("私有方法");    

}

在子类重写的方法中继续使用父类被重写的方法可以通过super.函数名获取

二、代码演示

class Person{//class 相当于c语言的struct

String name;
private String address;

public void printInfo(){
    System.out.println("name=" + name);
}

private void printAddr(){
    System.out.println("address=" + address);
}

}

class Student extends Person{

int score;

/*重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值*/
public void printInfo(){
    super.printInfo();                        //用super调用父类方法
    System.out.println("子类name=" + name);    //不写父类的会优先调用子类方法
}

/*重写方法不能比被重写方法有更加严格的访问权限*/

// private void printInfo(){
// super.printInfo();
// System.out.println("子类name=" + name);
// }


/*父类中的私有方法,不能被重写*/

// 这里不会报错,但是主函数无法调用(报错)
// private void printAddr(){
// System.out.println("私有方法");
// }
}

public class Test {

public static void main(String[] args) {    
    Student s = new Student();
    s.name = "xiaowei";
    s.printInfo();
}

}

目录
相关文章
|
28天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
19 3
|
28天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
37 2
|
28天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
30 2
|
28天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
34 1
|
1月前
|
Java 测试技术 编译器
Java零基础-继承详解!
【10月更文挑战第4天】Java零基础教学篇,手把手实践教学!
39 2
|
1月前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
23 5
|
1月前
|
Java
java继承和多态详解
java继承和多态详解
43 5
|
1月前
|
Java 编译器
【一步一步了解Java系列】:子类继承以及代码块的初始化
【一步一步了解Java系列】:子类继承以及代码块的初始化
26 3
|
1月前
|
Java 测试技术 编译器
Java零基础-继承详解!
【10月更文挑战第6天】Java零基础教学篇,手把手实践教学!
25 0
|
1月前
|
Java 程序员 编译器
【Java】继承、super、final、子类构造方法
【Java】继承、super、final、子类构造方法
30 0