刚学Java继承,有道题希望大家帮我分析一下!
题目如下:Engine(引擎),具有power(功率,整数)属性,相对应的setter和getter方法,work()方法:输出"xx功率的发动机在运转"
Car(轿车),具有Engine属性,相对应的setter和getter方法,run()方法,在方法中判断Engine对象是否为null,选择输出"发动机发动不了"或者"xx功率的发动机在运转,汽车在跑"
Benz(奔驰),继承Car类,重写run()方法
Driver(驾驶员),具有属性name(姓名),相对应的setter和getter方法,driveCar(Benz benz)方法,在方法中输出“xxx 在开车”,并调用benz的run()方法
看得有点晕,谁可以帮我分析一下Car类。 --------------------编程问答-------------------- 就是Car是父类啊,就是后面的奔驰之类继承之后用super.run()调用父类的方法就对了啊
--------------------编程问答--------------------
我其实不懂的是:Car(轿车),具有Engine属性,这句话的Engine的属性到底是什么的属性? --------------------编程问答-------------------- inte易做图ce Car{
void run(Engine x);
}
inte易做图ce Engine{
void work(int power );
}
class Driver{
driveCar(Car car);
}
class Benz implements Car{
@override
void run(Engine x){
}
}
--------------------编程问答--------------------
它不仅具有power(功率,整数)属性,相对应的setter和getter方法,还具有work()方法:输出"xx功率的发动机在运转"
--------------------编程问答-------------------- Car类为父类,继承他的类拥有它的方法,还可以自己扩展父类所没有的方法和变量! --------------------编程问答-------------------- car类是父类,和Engine属性有关联关系 --------------------编程问答--------------------
Car(轿车),具有Engine属性,这个是说Engine是car的类属性,把Engine当做一个普通的属性就可以了,但是不同的是Engine这个属性可以调用Engine类的所有属性和方法…… --------------------编程问答--------------------
public abstract class Car {--------------------编程问答-------------------- Engine类:
Engine engine;
public Engine getEngine() {
return engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
public void run(){
if(engine == null){
System.out.println("发动机发动不了");
}else{
System.out.println(engine.getPower()+"功率的发动机在运转,汽车在跑");
}
}
}
public class Engine {
private int power;
public int getPower() {
return power;
}
public void setPower(int power) {
this.power = power;
}
public void work(){
System.out.println("XX功率的发动机正在运转。。");
}
}
Car类:
public class Car {
private Engine engine;
public Engine getEngine() {
return engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
public void run (){
if(engine==null){
System.out.println("发动机发动不了");
}else{
System.out.println("xx功率的发动机在运转,汽车在跑");
}
}
}
后面的没写,Car类就这样写,记住一句话:类是特殊的数据类型 --------------------编程问答-------------------- --------------------编程问答-------------------- public class Engin {
public int power;
public int getPower() {
return power;
}
public void setPower(int power) {
this.power = power;
}
public Engin(int power){
this.power=power;
}
public void work(){
System.out.println(this.power+"功率的发动机在运转");
}
}
public abstract class Car {
public Engin engin=null;
public Engin getEngin(){
return engin;
}
public void setEngin(Engin engin){
this.engin=engin;
}
public Car(Engin engin){
this.engin=engin;
}
public abstract void run();
}
public class BZ extends Car{
public BZ(Engin engin){
super(engin);
}
public void run(){
super.engin.work();
System.out.println("奔驰牌的发动机在发动");
}
}
public class Drive {
public String name;
public Drive(String name){
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void driveCar(BZ b){
System.out.println(name+"在驾驶汽车");
b.run();
}
}
public class test {
/**
* @param args
*/
public static void main(String[] args) {
Drive d=new Drive("小明");
Engin engin=new Engin(1000);
BZ b=new BZ(engin);
d.driveCar(b);
}
} --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 其实就是子类继承父类,子类拥有父类包含的属性,定义一个子类对象a,可以通过a来调用父类的public修饰的方法来使用父类的属性,比如调用get方法来得到父类也就是Car的属性
补充:Java , Java SE