JAVA总结 DAY10 0812 Vimcelia

回顾
一、抽象

1.抽象类:必须使用abstract关键字修饰,同时抽象类不能被实例化;
2.抽象方法:方法和类一样必须使用abstract关键字修饰;没有方法体,同时抽象方法必须写在抽象类里

抽象类一般是父类,是实现某些抽象的功能
二、多态

一种事物多种形态:

  1. 多态的前提是必须写在继承里面
  2. 多态一般都有方法的重写
多态中访问变量的规则:

编译看左边,运行看左边

多态中访问方法:

编译看左边,运行看右边

向上转型:
父类名称   对象名=  new  子类名称    (自动类型转换)

意义:父类的引用和执行子类的具体对象
缺点:不能够访问到子类独有的方法

向下转型:
	子类名称  子类对象=(子类名称) 向上转型的对象名

向下转型会产生一个错误 : 类转换类型
可以通过关键instanceof 进行判断(避免)

	if (c instanceof Thecar) {
		Thecar thecar = (Thecar) c;
			if (thecar.getBrand().equals(brand) && thecar.getType().equals(type)) {
                    return thecar;
                }
            } else if (c instanceof Bus) {
                Bus bus = (Bus) c;
                if (bus.getSeatCount() == seatCount && bus.getBrand().equals(brand)) {
                    return bus;
                }
多态的两种体现形式:

1.以父类作为参数
2. 以父类作为返回值

三、接口

接口实际上是一些规范(抽象方法)
产生接口的原因:解决java的单继承问题

接口的关键字: interface
定义接口的语法:
	访问修饰符     interface     接口名称{

                }   // 接口里都是抽象方法 ,不能有普通方法.

实现接口的语法  :
	 implements  Pager,Link (implements 接口1,接口2)
接口的特点:

1.接口里没有变量, 都是常量
2.接口里的方法都是抽象方法
3.接口里没有构造方法

内部类

定义: 类里面嵌套一个类

      内部类的语法:  

 public  class 外部类名{
		public  class  内部类名{
                       }
}
内部类的特点

1.内部类可以获取外部类的属性与方法(包括私有的)
2. 外部类获取不到内部类的属性与方法

成员内部类

公有的内部类 :

	获取内部类的语法是 :  
外部类名 . 内部类  对象的名称=  new 外部类().new 内部类()

私有的内部类 :
只能够本类访问
变量重名:如果外部类的变量与内部类的变量重名,可以使用相应语法进行调用

访问外部变量的语法:
  类名.this.变量名
静态内部类

加上静态的关键字static,一般会去掉访问修饰符

静态内部类的语法:  
 Person.Man  vc =   new Person.Mant();     
 外部类.内部类   对象的名称 =  new   外部类.内部类()
方法内部类 :
语法:   
访问修饰符     返回值   方法名称 (参数列表){
	 class  类名 {
                 // 成员属性
                // 成员方法
                // 构造 

   }

1.不能有访问修饰符 ;
2.生命周期随着方法的开始而开始,结束而结束
3. 在方法里的内部类方法, 不能够直接调用,但是可以间接调用在外部类的方法里实例化这个对象(内部类),然后调用其(内部类)方法;

匿名内部类 : (没有名字)

1.一般是在继承或者实现的基础上

匿名内部类的语法: 
	  new 抽象类或者接口{
            //  必须实现的方法
             }
访问修饰符:public > protected > 默认> private

在这里插入图片描述

总结:

在学习完JAVA的面向对象之后,了解到了面向对象的最重要的三个特点:封装、继承、多态,实际上的运用还是十分不熟悉,希望能够在日后的日子里能够更好的使用Java语言的这三个特性

疑问:

在方法的命名或者使用上,为什么很难找出这个方法是否需要返回值,特别是需要用到引用数据类型进行方法调用的时候,总感觉无从下手。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值