继承与多态
在生活中,r保存文档时会经常使用文件夹,把不同类型的文档归类,然后分放到不同的文件夹中,便于管理和查找。
一.包
如果在程序中没有声明包,类将被存放在default的包中, default的包没有名称。不建议采用default包的形式,建议开发人员按照业务的需要创建用户自定义包。在程序中声明包的语法如下:
java
package < 包名>
在这里插入代码片
注意:声明一个包的语句必须写在类中的第一行。
如果要使用Java中存在的包,可以在程序中使用import语句导入包。在程序中导入包的格式如下:
import java.util.*;
import java. util.ArrayList;
一个包中具有缺省访问权限的成员只能在同一个包中被引用,如果一个包中的成员的访问权眼为public,那么这些成员才能被其他包中的类所引用。
1.public访问权限成员(类、属性和方法统称)
public成员可以被其他包中的类访问, public类中的protected成员可以被由它派生的在其他包中的子类访问。
2.缺省访问权限成员
缺省访问权限成员,只能被同一个包中的类访问,不被其他包中的类访问。
二.继承的概念和使用
知识要点
继承的定义和使用:继承是面向对象程序设计的一个重要特征,它是通过继承原有类派生出子类,进而构造更为复杂的子类,子类既有新定义的行为特征,又继承了原有类的行为特征。
继承的定义与使用
注意事项
圣剑类和长矛类都拥有相同的属性,可以抽离出一个父类,将相同属性定义在父类中,子类继承拥有。
继承的特性
子类继承父类后,可以拥有父类中定义的公共方法。
实践
实践:创建一个交通工具父类(Vehicles)以及;两个子类,分别是小汽车类(Car)和卡车类(Truck),显示出各类的相关信息。
(1)创建名为交通工具的父类(Vehicles) ,该类中有两个String类型的属性,商标(brand)和颜色(color),该类中还包含一个行驶(run)的方法,该方法中输出汽车的品牌+ “正在行驶” ,并通过调用该类的showinfo()方法,在控制台显示汽车商标和颜色。通过该类的有参构造方法初始化其成员属性。
(2)创建小汽车类(Car)继承Vehicles类,在该类中增加int型成员属性座位(seats)和showCar()方法,该方法用于在控制台显示小汽车的信息。
(3)编写卡车类(Truck)继承Vehicles类,添加float型成员属性载重(load)和showTruck0)方法,该方法用于在控制台显示卡车的信息。
(4)创建测试类VehiclesTest,在该类的主方法中完成需求中相关信息的输出。
(5)创建com.java.oriented,将上述类保存至该包中。
package com.test;
public class Vehicles {
String brand;
String color;
public void run() {
System.out.println(this.brand+"正在行驶");
}
public void showInfo() {
System.out.println("品牌:"+this.brand+"\t颜色:"+this.color);
}
public Vehicles(String brand,String color) {
this.brand=brand;
this.color=color;
}
package com.test;
public class Car extends Vehicles{
public Car(String brand, String color) {
super(brand, color);
}
public void showCar(int seats) {
super.showInfo();
System.out.println("我是一辆:"+this.brand+"\t我的颜色:"+this.color+"\t我有:"+seats+"个座位");
}
}
package com.test;
public class Truck extends Vehicles{
public Truck(String brand, String color) {
super(brand, color);
}
public void showTruck(float load) {
super.showInfo();
System.out.println("我是一辆:"+this.brand+"\t我的颜色:"+this.color+"\t我的载重:"+load+"吨的材料");
}
}
package com.test;
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Car c=new Car("阿斯顿马丁","绿色");
c.showCar(6);
Truck t=new Truck("东风小康","蓝色");
t.showTruck(12);
}
}
重点
修饰符:
1.public 公共的;任何包下的内容都可以访问;
2.缺省修饰符;默认被当前的包访问;
3.private 私有的;被当前类下的范围访问;
4.protected;只能在当前包和不同包的子类访问