类和面向对象编程 二

继承和多态
多态:多种状态,多种形态
一个人可能是老师,可能是学生。它有两种状态。
父类对象可否调用子类里面的特有方法(强制类型转换
多态中的对象所占有的内存 抽象类 abstract
抽象类里面可以包含正常方法和抽象方法
抽象类可以包含构造方法,但是不能被实例化
构造方法的作用是让子类对父类里面的数据进行初始化
抽象类的子类还可以是一个抽象类(不用实现抽象方法)
抽象类的子类(正常类)必须实现抽象类中的抽象方法
抽象类声明:
abstract class xxx{}
抽象方法声明:
Abstract void xx(); //没有方法体
接口 interface implements
接口里面只能包含抽象方法(接口是完全抽象化的类,里面没有完整的方法)
我们可以通过接口定义一个功能(其他类可以实现这个接口来拥有这个功能)
用来扩展功能
接口可以被实现,不能被继承(接口里面只是定义了一些东西,并没有可以被实际继承 的数据或者方法(属性和行为))
接口可以被抽象类实现、也可以被具体类实现
单继承 多实现
接口与接口:可以多继承(一般不这么用)
接口的定义
interface xx{}
接口的实现
class xx implements xx{}
抽象类和接口的关系和区别
抽象类可以包含变量、常量、具体方法、抽象方法
接口可以包含 常量和抽象方法
接口一般用来做功能扩展
类、抽象类、接口练习题
匿名内部类//JDK 8
适用于只需要使用一次的类。
通过接口或者抽象类创建匿名内部类。
常量:
一、字面值常量。
二、自定义常量
Java类包(package)
当我们开发的项目很大的时候,我们会写很多很多的类,这样的话不方便管理,而且容易重名。
我们可以通过包对类进行分类管理,也可以避免重名问题。
一种类型的Java类放在一 个包里面,或者一个模块的Java类放在一个包里面。不同包里面可以包含同名的类,通过包来区分。
定义包
放在class前面
包名命名规则(以域名开头)
划分包可以按照功能、模块(后面具体情况具体学习)
系统举例:
java.util、java.sql
带包的类的编译和运行
编译javac -d . xxx.java (编译的时候会根据你定义的包,创建对应的文件夹目录结构)
运行java com.sikiedu.xxx
带包的类的使用:
import xxx.xxx.xx.xx;import xx.xx.xx.*;
内部类:
把一个类定义在另一个类的内部,这个被定义在内部的类称为内部类。包含内部类的叫做外部类。
内部类比外部类多了三个访问权限:
private protected static
为什么类只有public和default两个访问权限
因为类的作用域只有两个 包内和包外,public在包外也可以访问,default只能在包 内访问。
分类0
非静态内部类(是否使用static修饰)
静态内部类
局部内部类
匿名内部类
非静态内部类
不能拥有静态成员
内部类可以访问外部类的私有成员,外部类不能访问内部类的成员。
如果内部类成员和外部类成员名相同的时候,可以通过 this 外部类.this来区分
如果内部类是private的那只能在外部类内部使用
如果是public的话,那可以在外部类外部使用 外部类.内部类 对象名;
非静态内部类对象和外部类对象的关系
你可以认为内部类对象是寄生在外部类对象里面的。外部类对象里面可以有多个寄生 虫,每个寄生虫都可以访问外部类对象的private数据,而且访问到的是一样的。
在外部类外面创建内部类:
外部类.内部类 对象名 = new 外部类.内部类(); // 错误
//正确
外部类.内部类 对象名 = new 外部类().new 内部类();
内部类 对象 = 外部类对象.new 内部类();
局部内部类:把类定义在方法内部,作用域只在这个方法内有效。这个用法用的比较少
匿名内部类//JDK 8
适用于只需要使用一次的类。
通过接口或者抽象类创建匿名内部类。
访问权限修饰符
应用的地方:类、成员变量、成员方法
类 public default 类使用的作用域有两个 包内,包外
private成员 只能在同一个类里面访问(子类,通过对象,类外,其他包里面)
public 成员,所有地方都可以访问
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值