摘要: 抽象类的练习 /* 猫狗案例 具体事物:猫,狗 共性:姓名,年龄,吃饭 分析:从具体分析到抽象的过程 猫:Cat 成员变量:姓名,年龄 构造方法:无参构造,有参构造 成员方法:吃饭(猫吃鱼) 狗:Dog 成员变量:姓名,年龄 构造方法:无参构造,有参构造 成员方法:吃饭(狗吃肉) 通过分析我们发现, 阅读全文
posted @ 2021-12-11 23:57 赤兔胭脂小吕布 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 抽象类的成员特点 /* 抽象类的成员特点 成员变量 可以是变量,也可以是常量 构造方法 有构造方法,但是我们上一个程序中总结出抽象类不能实例化,那构造的意义是 什么呢?要想初始化子类,就必须先初始化父类,在继承的关系中有用 成员方法(上一个程序中写了) 可以有抽象方法 限定子类必须完成某些动作 也可 阅读全文
posted @ 2021-12-11 23:09 赤兔胭脂小吕布 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 抽象类的概述和特点 /* 抽象的表述: 我们之前所说的猫,狗,猪,羊驼,熊猫等等都是动物的具体的例子,而动物本身是一个抽象的 概念,而我们之前是将动物写成了一个类,而类又可以创建对象,但是呢,实际上抽象的东西本身应该不能 实例化,并且动物这个概念中吃的方法,以及动物共有的方法本身也是一个不具体的方法 阅读全文
posted @ 2021-12-11 23:01 赤兔胭脂小吕布 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 多态的习题 /* 多态的练习: 猫狗案例 */ class Animal2{ public void eat(){ System.out.println("吃饭"); } } class Dog2 extends Animal2{ @Override public void eat() { Syst 阅读全文
posted @ 2021-12-11 22:36 赤兔胭脂小吕布 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 多态中的类型转换异常图解 程序示例 class Animal{ public void eat(){ System.out.println("吃饭"); } } class Dog extends Animal{ public void eat(){ System.out.println("狗吃肉" 阅读全文
posted @ 2021-12-11 21:53 赤兔胭脂小吕布 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 对多态向下转型的理解: 伪代码举例 存在多态的前提:(缺一不可) 1、要有继承关系 2、要有方法重写 3、要有父类的引用指向子类对象 class 曹操{ int age = 50; public void fight(){ System.out.println("赤壁之战") } } class 曹 阅读全文
posted @ 2021-12-11 20:46 赤兔胭脂小吕布 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 多态中的转型问题 程序示例 /* 多态的弊端: 多态无法使用子类特有的方法 我就想使用子类特有的功能,能否使用? 答案是能 那怎么使用呢? 1、创建对应的子类对象并调用方法 可以,但是不推荐,很多时候会占用栈内存和堆内存的空间 2、java替我们考虑到了这一点,提供了一个技术给我们使用:向下转型 把 阅读全文
posted @ 2021-12-11 20:36 赤兔胭脂小吕布 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 多态的弊端 程序示例 /* 多态的前提: 1、要有继承的关系 2、子类要重写父类中的方法(可以不重写,但是没有意义) 3、要有父类的引用指向子类对象 多态的弊端: 多态无法使用子类特有的方法 */ class Father1{ public void fun(){ System.out.printl 阅读全文
posted @ 2021-12-11 20:15 赤兔胭脂小吕布 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 继承中的static 程序示例 /* 子类中什么都没有定义,为什么可以继承父类中的静态成员?? 因为父类中的静态成员可以看作是一个全局共享的。 */ class A{ //父类中的静态成员可以看作是一个全局共享的 //定义一个父类的静态成员变量 public static int a = 10; / 阅读全文
posted @ 2021-12-11 20:02 赤兔胭脂小吕布 阅读(23) 评论(0) 推荐(0) 编辑