[基础]学习笔记(八)

/*
	子类抛出的异常 只可以是父类抛出异常范围以内。
	
	使用javac  的时候会将源码转换为字节码
	之后会生成一个会有一个叫常量表的东西,这个时候常量表中的还是可见的,也是易读的符号引用。
	当进入解析阶段的时候,常量池中的符号引用会被替换成直接引用,也就是常量池中符号所代表的内存地址中的对象。
	
	
	上一章的继承  需要再添加一个需要注意:
		子类重写父类的方法其中权限修饰符只能放大权限,不能缩小权限,不能用static修饰重写方法,子类抛出的异常必须
		为父类异常的子类或相同类。
	
	
	
	变量:
		变量的类型+变量的名字
		变量是用来存储信息的容器
	集合:
		集合的类型+集合名字
		集合就是一个容器,把一组相同类型的变量保存起来的容器。
		
	集合架构:
			Collection -> List -> ArrayList/LinkedList
			Collection -> Set -> HashSet/TreeSet
			Map -> HashMap/TreeMap
			集合会有一个相同类型的数据,就是泛型<T>
		Collection和Map是平级的。
		
		Collection 定义了一些集合常用的基本方法.
		jdk1.8 中为什么引入了default关键字,可以给予接口实现默认方法?有什么好处?
			便于扩展接口中的方法而不破坏原有的继承体系。
			如果没有这个特性,那么如果我想给所有的collection接口的子类。扩展这么一个stream的功能,
			那我是不是需要重新构造这个继承体系。
			在面向对象编程中,我们一定要遵循的法则之一也是最重要的一点:
				那就是开闭原则。 -> 对修改封闭对扩展开放。
	
	interface A {
		default void say(){
			System.out.println("你好王富贵");
		};
	}

	public class Test implements A {
		static void f() {
			System.out.println("我是啦啦啦");
		}

		public static void main(String[] args) {
			Test.f();
		}
	}
	
	看上面的代码,这样的话,给出默认的实现,接口就不需要强制性的重写方法,会给予一个默认的共通的实现方法。
	如果需要重写也可以进行一个重写。
	
	子类向上转型之后,只可以使用父类的方法。
	
	Collection<T> 类被实现了,比如,AbstractCollection<E>类已经被实现了,又被List<E> 实现了,AbstractCollection<E>类
	又被AbstractList<E> 继承了,那么ArrayList<E> 类为什么继承了AbstractList<E> 还要实现List<E> 类?AbstractList<E>
	又为什么也要继续实现List<E> 类?
	答案:
		通过AbstractCollection<E> 的源码可以看出这个实现了Collection<T> 部分功能,但是部分方法没有被实现。
		这种模式,叫做,模板方法模式 -> 给你提供一些通用的方法,其它的交给子类去实现,子类在父类的基础上,必须要
		实现这些方法。
			
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值