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);
}
}