JAVA中方法的重载,重写,继承
Vehicle为父类
Car及Truck继承了Vehicle
继承的特性
1.子类有父类非private的成员属性,成员方法(不继承父类的构造方法)
2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
3.子类可以用自己的方式实现父类的方法,即方法的重写
3.1 三同原则:同方法名,同返回类型,同参数表
3.2 子类中的复写的方法不能使用比父类中被覆盖的方法更严格的访问权限,即父类中public,子类中不允许为private
4.java的继承是单继承,但是可以多重继承
5.提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)
方法重载和重写的区别(Test类)
1.重载,是一个类中,他们满足方法名相同,参数列表或类型不同,这叫方法的重载
2.重写,是子类根据需要对从父类中继承来的方法进行重写
方法重载的目的是功能类似的方法使用同一名字,更容易记住,因此,调用起来更简单
方法的重载
package Myapp.Day2; public class Test { public int result; public int Method(int a,int b){ result = a+b; return result; } //方法的重载 public String Method(int a,int b,int c){ result = a+b+c; return String.valueOf(result); } public static void main(String [] args){ Test test = new Test(); System.out.println(test.Method(2,3)); } }
继承与重写
package Myapp.Day2; /** * Vehicle 车辆类--具有car truck共有的属性和方法 */ public class Vehicle { //品牌 public String brand; //颜色 public String color; //车架号 public String vin; //名字 public String name; //能跑 public void carRun(){ System.out.println("car run run ....."); } }
package Myapp.Day2; /* Car类 */ public class Car { //品牌 private String brand; //颜色 private String color; //车架号 private String vin; //名字 private String name; //能跑 public void carRun(){ System.out.println("car run run ....."); } //构造方法,一定是没有返回值的 //无参数的构造方法 public Car(){ } //有参数的构造方法 public Car (String name){ this.name = name; } //重载构造方法 public Car (String name,String color){ this.name = name; this.color = color; } }
package Myapp.Day2; //Truck继承了Vehicle /* Truck类 */ public class Truck extends Vehicle { //载重量 private String load; //能载货 public void canload(){ System.out.println("truck can load....."); } //重写父类方法 public void carRun(){ System.out.println("truck run run......"); } public static void main(String[] args){ Truck truck = new Truck(); truck.carRun(); //调用父类的属性 truck.brand = "BYD"; System.out.println("品牌为"+truck.brand); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)