package cn.tedu.oop1;
/*本类用于完成OOP汽车设计综合案例*/
public class DesignCar {
//创建程序的入口函数
public static void main(String[] args) {
//8.创建一个纯纯的父类对象进行测试
Car c=new Car();
System.out.println(c.getColor());//null,需要 使用get()方法默认值
c.start();//父类自己的功能
c.stop();//父类自己的功能
//c.fly();父类不能使用子类独特的功能
//9.创建一个纯纯的宝马类对象
BMW b=new BMW();
System.out.println(b.color);//子类定义的同名属性
b.stop();//重写,使用的事父类的功能
b.start();//未重写,使用的是父类的功能
//10.创建一个纯纯的子类保时捷类对象
BSJ b2=new BSJ();
System.out.println(b2.color);
b2.start();//未重写,使用的是父类的方法
b2.fly();//使用的事子类特有的方法
}
}
//1.通过归纳总结,使用关键字class抽象封装形成一个“类”组件来描述一类事物
class Car{
//2.属性--通过成员变量来描述
//2.1属性的封装--通过关键字private对属性进行封装
private String brand;//品牌
private String color;//颜色
private double price;//颜色
private double size;//尺寸
//3.行为--通过方法来描述
public void start(){
System.out.println("我的车车启动了");
}
public void stop(){
System.out.println("我的车车熄火了诶~");
}
//2.2给被封装的属性提供公共的属性值设置和访问方式--Getxxx()、Setxxx()
//快捷方式:右键->Generate->Getter and Setter->shift全选->ok
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getSize() {
return size;
}
public void setSize(double size) {
this.size = size;
}
}
//4.创建一个宝马类,并且继承汽车类,通过关键字extends建立继承关系
class BMW extends Car{
String color="五彩斑斓的黑";
//重写遵循两同两小一大原则,重写后,子类对象使用重写后的方法
@Override
public void stop(){
System.out.println("不仅要帅还用稳");
}
}
//5.创建一个保时捷类并且继承汽车类--通过关键字extends建立继承关系
class BSJ extends Car{
String color="五彩斑斓的白";
//7.新增子类特有功能--父类不可以使用,只有子类对象可以使用此功能
public void fly(){
System.out.println("启动加速度,直接起飞~");
}
}