java基础第九天



多态: 一种事物的多种形态  

例如:
H2O


冰,雪
水,雾,雨
水蒸气 


动物







多态的前提: 
1.类与类有继承关系 
2.方法重写 
3.父类引用指向子类对象 


多态成员的运行特点
1.成员变量 
编译看左边,运行看左边 
2.成员方法 
编译看左边,运行看右边(子类)
3.静态方法 
编译看左边,运行看左边(静态方法,是跟这类走的)
4.构造方法

编译看左边,运行看左边(没有重写,涉及不到多态)

转型的问题:
向上转型:
默认,从子类-->父类 
父类引用指向子类对象 




向下转型 
强制,从父类-->子类
格式:
子类 变量名 = (子类类型)父类 变量名; 
IronMan im = (IronMan) p;
( 参考基本数据类型强转    byte b = (byte)300))


好处: 转型之前,父类 p 并不能使用子类的特有功能
 转型之后,父类就可以使用子类的功能.

抽象类:你没有办法具体描述的类,比如 动物,水果 ,工具 ,蔬菜 , 情感....  
修饰类和方法 




格式:
类: abstract class 类名 { }
方法: public abstract  void eat();
注意:抽象方法是没有方法体
抽象类中可以没有抽象方法 ,但是如果有抽象方法,那么此类必然为抽象类 


eat(){
syso
}


特点:
1.抽象类中,有构造方法,但是不能直接new,所以构造方法是抽象类的子类用的
2.实例化只能实例它的子类,那么就使用到多态 

3.子类的要求:
1.抽象子类才能继承 抽象类 
2.子类想要继承抽象,必须重写抽象类中所有的抽象方法 


成员特点:
1.成员变量: 变量 , 常量 
2.构造方法: 有,但是抽象类用不到
3.成员方法: 抽象 ,非抽象


成员方法的特征:
1.抽象方法:子类必须重写 
2.非抽象: 子类直接用 

abstract 不能和哪些关键字共存?



private    冲突 -- 对子类隐藏,而 abstract 必须让子类重写 
final      冲突 -- 不能被重写,矛盾 
static     无意义-- 类名调用,没有方法体,无意义
  


         
接口: 本质就是一种规则 


作用: 就是扩展类功能 


格式:
interface 接口名{}
相当于定义了规则 
*接口中可以写方法,但是必须是抽象的. 


使用:
class 类名  implements 接口名{}
相当于给类扩展了接口的功能,需要重写接口的所有抽象方法 


注意:
1.接口是不能实例化
创建实现了接口的类的对象,该对象也叫做这个接口的子类
2.类可以实现多个接口




抽象类 接口


成员变量  常量 和变量 常量(public static final)
构造方法  有 没有
成员方法  抽象 非抽象 抽象(public abstract)


类与类 :继承 

单继承 
多层继承 


问题:为什么不能多继承,多个类中有重名方法? 
A {
show(){ a}
}


B {
show(){ b}
}


类和接口:实现 
单实现
多实现
问题:为什么多实现? 如果多个接口中,有重名方法怎么办?  
没关系 , 接口中方法都是抽象的.




接口和接口 
继承 ,而且多继承 


interface A extends interface B {

}
class  C implements A{ 
实现 A 和 B 所有抽象方法 
}




C:设计理念区别
抽象类
被继承体现的是:"is a"的关系。 抽象类中定义的是该继承体系的共性功能。
接口
被实现体现的是:"like a"的关系。天马像马,小飞象像大象.
接口中定义的是该继承体系的扩展功能。
:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是《Java基础入门第三版》的详细笔记: 1. Java语言特点 Java语言的特点有:简单易学、面向对象、平台无关性、安全性、高性能。 2. 基本数据类型 Java语言有8种基本数据类型:byte、short、int、long、float、double、char、boolean。 3. 运算符 Java语言提供的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符。 4. 控制语句 Java语言提供的控制语句有:if语句、switch语句、for循环语句、while循环语句、do-while循环语句、break语句、continue语句。 5. 面向对象编程 Java是一种面向对象的编程语言,它支持类、对象、封装、继承和多态性等特性。 6. 异常处理 Java语言提供了异常处理机制,它可以帮助开发人员更好地处理程序中的错误和异常。Java语言中的异常处理包括:try-catch语句、finally语句、throws语句、throw语句。 7. 常用类库 Java语言提供了丰富的类库,常用的类库有:Math类、String类、StringBuffer和StringBuilder类、Date和Calendar类、File类和IO流等。 8. 数组 Java语言提供了数组来存储同种类型数据的集合,可以使用一维数组、二维数组等。 9. 字符串 Java语言中的字符串是一个类,它提供了很多方法来处理字符串,如字符串连接、截取、替换、比较等。 10. 输入输出 Java语言提供了IO流来处理输入输出,其中包括字节流和字符流,可以读取文件、网络等各种数据源。 以上就是《Java基础入门第三版》的详细笔记。希望对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值