面向对象——继承
来源:互联网 发布:马苏 知乎 编辑:程序博客网 时间:2024/05/02 07:28
继承:面向对象最显著的一个特性,从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。最常使用的两个关键字是extends和implements。
任务:编写交通工具类,具有前进run()功能,子类有自行车、小轿车、地铁,重写父类方法,主人有属性name,age属性,方法回家goHome(交通工具),需要使用交通工具,使用抽象类优化程序。
创建一个交通工具抽象类: //成员变量(属性) //有参数的构造方法 //成员方法(功能) //成员变量(属性) //有参数的构造方法 //有参数成员方法 //调用scanner输入方法 int i = scanner.nextInt(); if (i%3 == 0) { } }
package test_abstract;
public abstract class Vehicle {
int speed;//速度
int wheel; //车轮
public Vehicle(int speed, int wheel) {
super();
this.speed = speed;
this.wheel = wheel;
}
public abstract void run();//前进run()功能
}
创建一个自行车类(使用继承):
package test_abstract;
public class Bike extends Vehicle{
public Bike(int speed, int wheel) {
super(speed, wheel);
}
@Override
public void run() {//重写方法
// TODO Auto-generated method stub
System.out.println("骑自行车回家,速度为"+this.speed+"m/s。");
}
}
创建一个小轿车类(使用继承):
package test_abstract;
public class Car extends Vehicle {
public Car(int speed, int wheel) {
super(speed, wheel);
}
@Override
public void run() {//重写方法
// TODO Auto-generated method stub
System.out.println("开小轿车回家,速度为"+this.speed+"m/s。");
}
}
创建一个地铁类(使用继承):
package test_abstract;
public class Subway extends Vehicle {
public Subway(int speed, int wheel) {
super(speed, wheel);
}
@Override
public void run() {//重写方法
// TODO Auto-generated method stub
System.out.println("乘地铁回家,速度为"+this.speed+"m/s。");
}
}
创建一个人类:
package test_abstract;
public class Person {
String name;
int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public void goHome(Vehicle vehicle){
System.out.print(this.name+","+this.age+"岁,");
if (vehicle instanceof Bike) {//判断交通工具属于哪一类
Bike bike = (Bike) vehicle;//向上转型
bike.run();//调用方法
}else if (vehicle instanceof Car) {
Car car = (Car) vehicle;
car.run();
}else {
Subway subway = (Subway) vehicle;
subway.run();
}
}
}
创建一个测试类:
package test_abstract;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Vehicle vehicle = null;
Person host = new Person("小明", 25);
System.out.println("请输入数字选择交通工具:");
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){//循环出入
vehicle = new Bike(20, 2);
}else if (i%3 == 1) {
vehicle = new Car(60, 4);
}else {
vehicle = new Subway(80, 50);
}
host.goHome(vehicle);//调用方法
}
0 0
- 面向对象——继承
- 面向对象——继承
- 面向对象——继承
- 面向对象——继承
- 面向对象——继承
- 面向对象——继承
- OC面向对象—继承
- OC面向对象—继承
- OC面向对象—继承
- OC面向对象—继承
- OC面向对象—继承
- OC面向对象—继承
- 面向对象—继承概述
- Javascript面向对象—继承
- 面向对象程序设计——继承
- JAVA面向对象——继承
- 面向对象6——继承
- 面向对象——(6)继承
- DIV容器里面放上x*x的小方块的两种实现方法
- android-Ultra-Pull-To-Refresh源码分析
- 第四周项目3--单链表应用--连接链表
- iOS开发 内购流程 App中嵌入应用商店
- 网易笔试题 混合颜料
- 面向对象——继承
- 第三周项目2-建设“单链表”算法库
- vim配置及插件安装管理(超级详细)
- apache 使用之三(解决安装后出现的问题 the requested operation has failed)
- 双端队列
- Junit单元测试
- 设置jsp页面的背景图片
- 三、Linux设备模型(3)_Uevent
- Python文件的读写