Abstract抽象知识理解, 多态,向上转型和向下转型,

/**
* 抽象
* 抽象类 抽象方法
* 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类!
* 特点:
* 关键字:abstract
* 例如:
* public abstract class 类名(){} 定义一个抽象类
* public abstract void eat(){} 定义一个抽象方法
* 注意:抽象类中不一定要有抽象方法,但是有抽象方法的类中一定是抽象类
*
* 抽象方法的使用可以理解为:
* 定义一个类比如说Animal类,因为动物都会吃,都会睡觉这样大众化的方法,因此我们可以定义一个抽象类
* abstract class Animal(){在这个类型中我们写两个方法, abstract void eat(){}; abstract void sleep();
* 这里我们也可以新加一个实体方法比如: class void die(){};}
* 抽象Animal类,使用的时候我们需要继承。如果是猫类继承了抽象Animal类。可以写成:
* class Cat abstract Animal(){在这里想调用方法的时候,需要把父类中继承这里的eat()和sleep()两个抽象方法进行重写成实体方法,
* 而原本父类中原本中存在的实体方法,可以直接调用}
*抽象的成员特点:
* - 成员变量
* - 既可以是变量
* - 也可以是常量
* - 构造方法
* - 空参构造
* - 有参构造
* - 成员方法
* - 抽象方法
* - 普通方法
*
*/

/**
* 多态
* 理解:是一个对象在不同状态下不同时刻的不同状态。
* 多态的应用实现了,不同状态直接可以相互装换;
* 向上转换类型
* 格式:父类 对象名称 =new 子类
* 向下转换类型
* 格式:子类 变量名称 =(子类) 父类对象
*/

/**
* Java中的向上转型和向下转型都是指对象的类型转换。
*
* 向上转型:将一个子类对象赋值给一个父类类型的变量。例如:
* class Animal {}
* class Dog extends Animal {}
*
* Dog dog = new Dog();
* Animal animal = dog; // 向上转型,dog对象变为Animal类型
*
* 向上转型是安全的,因为子类对象拥有父类对象的所有特性和方法。
*
* 向下转型:将一个父类对象强制转换为子类类型。例如:
* Animal animal = new Dog();
* Dog dog = (Dog) animal; // 向下转型,将animal对象强制转为Dog类型
*/

* final用法
* fianl关键字的作用
* final代表最终的意思,可以修饰成员方法,成员变量,类
* final修饰类、方法、变量的效果
* fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)
* final修饰方法:该方法不能被重写
* final修饰变量:表明该变量是一个常量,不能再次赋值
* fianl修饰基本数据类型变量
* final 修饰指的是基本类型的数据值不能发生改变
* final 修饰引用数据类型变量
* final 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
* *
* static的概念
* static关键字是静态的意思,可以修饰【成员方法】,【成员变量】
* static修饰的特点
1. 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件
2. 可以通过类名调用当然,也可以通过对象名调用**【推荐使用类名调用】**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值