首页 > 其他 > 详细

接口的复杂使用 + 接口与抽象类的区别

时间:2020-10-20 00:38:04      阅读:29      评论:0      收藏:0      [点我收藏+]
--1,概述
接口和类之间可以多实现
接口和接口之间可以多继承
--2,代码 package cn.tedu.oop; 接口的复杂用法
总结 : 1, 接口是为了 突破java的单继承的局限性而来 2, 接口很灵活,可以多继承也可以多实现 3, 实现类 可以 在继承父类的同时 ,进行多实现

public class C9 {
public static void main(String[] args) {
//TODO 多态对象 --统一标准,,,,标准就是左边 -- 想用哪个接口的功能左面就写谁
Inter1 in = new Inter3Impl();
in.save();
// in.delete();
}
}
//TODO 接口和类之间可以实现 ,还可以多实现, 接口间逗号隔开
class InterImpl2 extends Object implements Inter1 , Inter2{
@Override
public void save() { }
@Override
public void delete() { }
}
//TODO 接口和接口之间可以多继承
interface Inter1{
void save();
}
interface Inter2{
void delete();
}
//1, 3号接口 成功的 使用了1号接口的功能 -- 发生的是继承关系
//2, 接口间可以继承,也可以多继承 , 多个接口间逗号隔开
interface Inter3 extends Inter1 , Inter2{ }
//3, 实现了3号接口的 实现类 , 要重写 所有 抽象方法,否则就是一个抽象的实现类
//abstract class Inter3Impl implements Inter3{ }
class Inter3Impl implements Inter3{
@Override
public void save() { System.out.println("save"); }
@Override
public void delete() { System.out.println("delete"); }
}

===============================================================
重写接口方法的权限问题
package cn.tedu.oop;
//测试 重写接口里的 抽象方法
public class Test5 {
	public static void main(String[] args) {
		//TODO 测试
	}
}
//1, 创建接口
interface A{
	//这是简写,会自动拼接public abstract
	void save();
	void get();
}
//TODO 2, 使用接口
class B implements A{
	//接口里的方法想要重写,要有足够权限,接口里都是public的方法
	//所以在重写时,要保持修饰符的权限>=原有的
	@Override
	public void save() {
		System.out.println("save");
	}
	@Override
	public	void get() {
		System.out.println("get");
	}
}


总结 
	--1,类和类之间的关系
		--继承关系,而且是单继承
		--class A extends B
		--A叫子类,B叫父类
		--A可以使用B的所有功能(除了私有),还可以使用自己的扩展功能
		--A还可以改 B的功能,叫方法重写现象
		--重写的要求:发生继承关系 + 有足够的权限 + 方法声明和父类一样
		--这种继承关系,是一种强耦合的关系,依赖性太强.
		
	--2,类和接口之间的关系
		--实现关系,而且可以多实现
		--class A implements B,C
		--A叫实现类, B和C叫接口逗号隔开
		--A可以同时拥有B和C接口的所有功能.
		--A需要重写所有 B C 里的抽象方法,否则就是一个抽象类
		--体现了接口的灵活性,扩展性.
		--class A extends B implements C,D
		--A叫子类或者叫实现类 ,B是父类,C和D是接口
		--A要重写B C D里的抽象方法,否则就是一个抽象类
		--对于普通方法是不是需要重写,怎么决定? -- 想不想改
		--要先继承再实现
		
	--3,接口和接口之间的关系
		--继承关系,而且可以多继承
		--interface A extends B,C
		--A叫子接口,B和C叫父接口
		--A可以使用B和C接口的所有功能,还可以有自己的扩展功能
		--class X implements A
		--X需要重写A B C 里的所有抽象方法,否则就是为一个抽象类
		
	--4,接口和抽象类的区别
		--相同点:都是java层次结构的上层 + 都不能被实例化
		--定义的关键字不同,抽象类是abstract接口是interface
		--下层发生的关系不同:
		--实现类和接口是implements实现关系,子类和父类是extends关系
		--抽象类是一个特殊的类,特殊在可以有抽象方法和普通方法
		--接口是一个特殊的抽象类,特殊在接口里 都是抽象方法
		--抽象类有构造方法,用来给子类new时调用....接口没有构造方法,实现	类new时调用Object的无参构造
		--抽象类里有变量有常量.接口里只有常量.
		--抽象类里的方法可以是普通的也可以是抽象的...接口里都是抽象的
		--接口里的资源可以简写:
		--接口里的常量,可以简写,会自动拼接public static final
		--接口里的方法,可以间写,会自动拼接public abstract
		--接口和实现类是实现关系,,而且可以多实现
		--抽象类和子类是继承关系,,而且是单继承
		
	



接口的复杂使用 + 接口与抽象类的区别

原文:https://www.cnblogs.com/liang-shi/p/13843988.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!