老王学java 七周第三天

接口和接口之间的多继承关系:
1,类与类之间是单继承的。直接父类只有一个。
2,类与接口之间是多实现的,一个类可以实现多个接口。
3,接口与接口之间是多继承的。

注意事项:
1,多个父接口当中的抽象方法如果重复,没关系。
2,多个父接口当中的默认方法如果重复。那么子接口必须默认方法的覆盖重写,「而且带着default关键字」

创建接口A

public interface MyInterfaceA {
	
	//创建一个 抽象方法
	
	public abstract void metodA();
   // 和B 一样的抽象方法
	 public abstract void metodCommon();
	 
	 
	 //默认方法 和B 的默认方法重复
	 public default void methodDefault(){
		 System.out.println("AAA");
	 }
}

创建接口B

public interface MyInterfaceB {
	
		//创建一个 抽象方法
		
		public abstract void metodB();
        //和A一样的抽象方法
	    public abstract void metodCommon();
	    
	    
	    默认方法 和A的默认方法重复
	    public default void methodDefault(){
			 System.out.println("BBB");
	    }
}

创建子接口

这个子接口当中有几个方法?答:4个。
 methodA 来源于接口A
 methodB 来源于接口B 
 methodCommon 同时来源于接口A 和B 
 method 来源与我自己
  
  
  */
public interface MyInterface extends MyInterfaceA, MyInterfaceB{
	
	public abstract void method();
	
	
	
	
	//那么继承的的子接口内必须默认重写,
	@Override
	public default void methodDefault(){
		
	}

}

证明它有四个抽象方法

public class MyInterfaceImpl implements MyInterface{

	@Override
	public void metodB() {
		
		
	}

	@Override
	public void metodA() {
		
		
	}

	@Override
	public void metodCommon() {
		
		
	}

	@Override
	public void method() {
		
		
	}

	
}

多态性:
在这里插入图片描述

多态的格式与使用:
代码当中体现多态性,其实就是一句话:父类引用指向子类对象
格式:
分类名称 对象名 = new 子类名称();
或者:
接口名称 对象名 = new 实现类名称();

public class Demo01Multi {

	public static void main(String[]args){
		
		//使用多态的写法
		//左侧父类的引用,指向了右侧子类的对象
		Fu obj = new Zi();
		
		
		obj.method();//子类方法
		obj.methodFu();//父类方法
	}
}

父类

public class Fu {
	
	public void method(){
		System.out.println("父类方法");
	}
	public void methodFu(){
		System.out.println("父类特有方法");
	}

}

子类

public class Zi extends Fu{

	@Override//覆盖重写
	public void method(){
		System.out.println("子类方法");
		
	}
}

多态中成员变量的使用特点:

访问成员变量有两种方式:
1,直接通过对象名称访问成员变量: 看等号左边是谁,优先用谁,没有则向上找
2,间接通过成员方法访问成员变量: 看该方法属于谁,优先用谁,没有则向上找。

public class Demo01MultiField {
	public static void main(String[]args){
		//使用多态的写法,父类引用指向子类对象
		Fu obj = new Zi();
		System.out.println(obj.num);//父类的10
//		System.ouot.println(obj.age);//父类当中没有age,往上找,只要最高的estends Object,最高祖宗类。
									//祖宗类也没age,所有错误。
		System.out.println("==============");
		
		//子类没有覆盖重写,就是父:10
		//子类如果覆盖重写,就是子:20
		obj.showNum();
		
	}

}

父类:

public class Fu/* extends Object*/{
 
	int num = 10;
	public void showNum(){
		System.out.println(num);
	}
}

子类:

public class Zi extends Fu {
	
	int num = 20;

	int age = 16;
	
	@Override
	public void showNum(){
		System.out.println(num);
	}
	
}

多态中成员方法的使用特点:
在多态的代码当中:成员方法的访问规则是:
看new的是谁,就优先有谁,没有则向上找。

口诀:
编译看左边,运行看右边。

对比一下:
成员变量:编译看左边,运行还看左边。
成员方法:编译看左边,运行看右边。

public class Demo02MultiMethod {
	
	public static void main(String[]args){
		Fu obj = new Zi();//多态
		
		obj.method();//父子都要,但是new的是Zi所以就优先用子。
		obj.methodFu();//子类没有,父类有,向上找到父类
		
		
		//编译看左,左边是Fu,Fu当中没有methodZi方法,所有编译报错。
//		obj.methodZi();//错误写法
	}

}

父类

public class Fu/* extends Object*/{
 

	
	public void method(){
		System.out.println("父类方法");
	}
	
	public void methodFu(){
		System.out.println("父类特有方法");
	}
	
}

子类

public class Zi extends Fu {
	
	
	@Override
	public void method(){
		System.out.println("子类方法");
	}
	public void methodZi(){
		System.out.println("子类特有方法");
	}
}

使用多态的好处:
在这里插入图片描述

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值