package cn.tedu.oop2;
/*本类用于测试多态成员的使用情况*/
public class TestDemo2 {
public static void main(String[] args) {
//7.创建纯纯的子类对象
Dog2 d = new Dog2();
System.out.println(d.sum);//20,子类自己的属性
d.eat();//小狗爱吃肉包子,子类自己的方法
//8.创建多态对象
/*口诀1:父类引用指向子类对象*/
/*口诀2:编译(保存)看左边 , 运行(效果)看右边*/
Animal2 a = new Dog2();
/*多态中 , 成员变量使用的是父类的*/
System.out.println(a.sum);//10
/*多态中 , 方法的声明使用的是父类的 , 方法体使用的是子类的*/
a.eat();//小狗爱吃肉包子
/*多态中 , 调用的静态方法是父类的 , 因为多态对象把自己看作是父类类型
* 直接使用父类中的静态资源*/
a.play();//没有提示 , 玩啥都行~
Animal2.play();
}
}
//1.创建父类
class Animal2{
//3.创建父类的成员变量
int sum = 10;
//4.创建父类的普通方法
public void eat(){
System.out.println("吃啥都行~");
}
//9.1定义父类的静态方法play
public static void play(){
System.out.println("玩啥都行~");
}
}
//2.创建子类
class Dog2 extends Animal2{
//5.定义子类的成员变量
int sum = 20;
//6.重写父类的方法
@Override
public void eat(){
System.out.println("小狗爱吃肉包子");
}
//9.2创建子类的静态方法play
//@Override
/*这不是一个重写的方法 , 只是恰巧在两个类中出现了一模一样的两个静态方法
* 静态方法属于类资源 , 只有一份 , 不存在重写的现象
* 在哪个类里定义 , 就作为哪个类的资源使用*/
public static void play(){
System.out.println("小狗喜欢玩皮球~");
}
}
7 拓展7.1 设计汽车综合案例创建包: cn.tedu.oopexec
创建类: DesignCar.java
package cn.tedu.oop2;
/*本类用于完成汽车设计案例*/
public class DesignCar {
public static void main(String[] args) {
//9.创建一个纯纯的父类对象进行测试
Car c = new Car();
System.out.println(c.getColor());//null
c.start();
c.stop();
//c.swim();//报错 , 父类对象不可以调用子类的特有功能
//10.创建纯纯的子类对象做测试
BMW b = new BMW();
System.out.println(b.color);//五彩斑斓的黑
System.out.println(b.getColor());//null
b.start();//都让开 , 我的车要起飞啦~
b.stop();//唉呀妈呀熄火了~
//11.创建多态对象进行测试
Car c2 = new TSL();
//System.out.println(c2.color);
System.out.println(c2.getColor());
c2.stop();
c2.start();
//c2.swim();
}
}
//1.通过分析 , 抽象形成一个汽车类
class Car{
//2.定义并封装汽车类的属性--成员变量
private String brand;//品牌
private String color;//颜色
private int id;//编号
private double price;//价格
//3.定义功能
public void start(){
System.out.println("我的小车车启动啦~");
}
public void stop(){
System.out.println("唉呀妈呀熄火了~");
}
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 int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
//4.创建子类
class BMW extends Car{
String color = "五彩斑斓的黑";
//5.重写父类的方法
@Override
public void start(){
System.out.println("都让开 , 我的车要起飞啦~");
}
}
//6.创建子类2
class TSL extends Car{
//7.重写父类的方法
@Override
public void stop(){
System.out.println("唉呀妈 , 怎么停不下来呢");
}
//8.添加子类的特有功能
public void swim(){
System.out.println("没想到吧 , 我还是个潜水艇");
}
}
7.2 多态为了统一调用标准package cn.tedu.oop2;
public class TestFruit {
推荐阅读
- 属于自己的一亩三分地?自家一亩三分地_2
- 我最喜欢的小动物二年级作文200字?我最喜欢的小动物二年级作文300字
- 家常小鱼排
- 醉虾
- 小米|MIX FOLD曾全球首发!去年亮相的小米液态镜头有新突破
- 小米|雷军剧透小米首款徕卡旗舰:测试远超预期 预计7月发布
- 昆虫记中小阔条纹蝶好词好句?昆虫记小阔条纹蝶好句赏析批注
- 小龙虾|武汉一知名虾店被曝用黑油死虾 直言死虾不臭就行:网友看吐了
- 护肤品|2021年她觉得小麦色皮肤好看,于是自己试着做了美黑,结果悲剧了
- 电视|超大屏旗舰直降500元 小米电视ES Pro 86英寸到手价7999元
