第一小节(包,抽象,接口,多态)
------------恢复内容开始------------
1.1 包的概述和使用
包其实就是文件夹;
包的格式:package 包名;(多级包用“.”分开)
eg:package com.helloworld;
带包的Java类编译和执行
1)手动建包:
手动建包把class文件移到最里面带包执行
2)自动建包:
javac -d.HelloWorld.java (-d 资源管理器--------表示在当前目录下)
java com.helloworld.Helloword
2 导报的概述和使用
使用不同包下的类时,要写类的全路径,为了方便
导包的格式
格式:import 包名;
eg: import helloworld.HEllo
3 修饰符
3.1 权限修饰符
private 只在本类中可使用(私有)
默认 同一个包中子类无关类
protected 同一个类,同一个包中子类无关类,不同包的子类
public 同一个类,同一个包中子类无关类,不同包的子类 ,不同包的无关类
3.2 状态修饰符
final 最终态----可修饰成员方法,成员变量,类
特点:修饰方法——表明该方法是最终方法,不能被重写;
修饰变量——表明该变量是常量,不能再次被赋值;
修饰类——表明该类是最终类,不能被继承;
修饰局部变量—— 基本类型变量-数据值不能发生改变;
引用类型-地址值不能改变,但地址里面内容可以改变;
3.3 Static 静态----可修饰成员方法,变量 ; 共享
特点: 被类的所有对象共享
可以通过类名调用(也可以通过对象名调用);
访问特点
静态成员方法只能访问静态成员;
4 多态(编译看左边,执行看右边)
概述:同一对象在不同时刻表现出来的不同形态
前提和体现:
有继承/实现关系
有方法重写
有父类引用指向子类对象 (父类new一个子类对象)
好处和弊端:
提高了程序的扩展性——体现在 定义方法的时候,使用父类型作为参数,将来在使用的时候使用具体的子类型参与操作;
不能使用子类的特有功能
多态中的转型:
1)向上转型
从子到父
父类引用指向子类对象
2)向下转型
从父到子
父类引用转为子类对象
5 抽象类 (abstract)
概述: 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类(抽象方法必须在抽象类-不能创建对象,用多态继承创建对象);
抽象类里可以存在非抽象方法,可以没有抽象方法;
特点:
抽象类和抽象方法必须使用 abstract 关键字修饰 eg: public abstract class 类名{}、public abstract void eat ();
抽象类中不一定有抽象方法,有抽象化方法的类一定是抽象类
抽象类不能实例化,需参照多态的方式,通过子类对象实例化,这叫抽象类多态
抽象类的子类——要么重写抽象类的所有抽象方法,要么本身是抽象类
抽象类的成员特点(子类使用必须重写(override))
成员变量——可以是变量也可以是常量
构造方法——有构造方法,但是不能实例化,构造方法的作用是用于子类访问父类数据的初始化;
成员方法——可以有抽象方法,限定子类必须完成某些动作,也可以有非抽象方法,提高代码复用性(用继承来访问);
6 接口(抽象,不能被实例化)
描述:接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用;
JAVA 中的接口更多的体现在对行为的抽象;
接口的调用方法类一般是—— 接口名+Impl(class类)
特点:
1.接口用关键字 interface 修饰 eg: public interface 接口名 {}
2.类实现接口用implements(实现)表示 eg: public class类名 implements 接口名 {}
3.接口不能实例化——参照多态的方式,通过实现类对象实例化(接口多态)
多态的形式:具体类多态(几乎不用),抽象类多态,接口多态。
多态的前提:有继承或者实现关系;有方法重写;有父(类/接口)引用指向(子/实现)类对象
4.接口的实现类 要么重写接口中的抽象方法
要么是抽象类(用接口可以不重写接口的方法)(+abstract)
接口的成员特点
成员变量 默认修饰符: public static final
接口中成员变量 只能是常量 默认被final修饰 静态static ,可从接口直接访问
接口中不能有构造方法(对行为进行抽象,不是具体存在的)
构造方法 无构造方法,默认继承Object类
成员方法 只能是抽象方法(abstract)
默认修饰符 public abstract
Object 类:
Object类是类层次结构的根,所有类都直接或者间接继承着Object
类和接口的关系:
类和类的关系:
继承关系,只能单继承,但可以多层继承。
类和接口的关系:
实现关系,可以单实现,也可多实现,还可以在继承一个类的同时实现多个接口
public class InterImpl extends Object implements Inter1,Inter2,Inter3{}
接口和接口的关系:
继承关系,可以单继承也可以多继承
public interface Inter3 extends Inter2,Inter3{}
(Java 多继承体现在接口上)
抽象类和接口的区别:
成员区别
抽象类 变量,常量;有构造方法;有抽象方法,非抽象方法
接口 常量;抽象方法
关系区别
类与类 继承,单继承
类于接口 实现,可以单实现,也可以多实现
接口与接口 继承,单继承,多继承、
设计理念区别
抽象类 对类抽象,包括属性,行为
接口 对行为抽象,主要是行为
(报警门---------定义一个报警接口,一个抽象类门有开关的抽象方法,一个类继承抽象类调用报警接口,重写里面的开关报警方法)
形参和返回值
类名作为形参和返回值
方法的形参是类名,其实需要的是该类的对象
方法的返回值是类名,其实返回的是该类的对象、
抽象类名作为形参和返回值
方法的形参是抽象类名,其实需要的事该抽象类的子类对象
方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
接口名作为形参和返回值
方法的形参是接口名,其实需要的是该接口的实现类对象
方法的返回值是接口名,其实返回的是该接口的实现类对象
1 内部类
概述:其实就是在一个类中定义一个类。eg public class Outer{
public class Inner{}
}
访问特点:
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象
1.1 成员内部类
外界如何创建对象使用
格式: 外部类名.内部类名 对象名 = 外部类对象.内部类对象;
eg: Outer.Inter oi = new Outer().new Inner();
------------恢复内容结束------------

浙公网安备 33010602011771号