Java中的继承与接口

继承:

        继承了父类的属性和方法

        子类同时也继承了父类的类型

方法重载:首先在同一个类中存在多个同名的方法,但是参数列表必须不同(数量 类型 顺序),其次访问修饰符返回值类型可以不一样

class Test{

        public static void main(String[] args){

                System.out.println ("hello world");

                System.out.println (10);

                System.out.println ('a');

                System.out.println (1 == 1);

                System.out.println (new Object ());

        }

}

方法重写: 子类中重写父类中的方法

例如:一个动物类,他们共有的属性是吃。但在动物类中又分为牛羊类和狮子老虎类。而这两个类对于吃的方法还有一些区别,即牛羊类(频率高 消化过程快 返回值)和狮子老虎类(频率低 消化过程慢 返回值)。所以需要单独重写这两个类独有的属性和方法。

类中重写实现的接口中的方法:接口中的方法没有方法体,实现类中必须重写方法加上方法内容

格式:要求与父类方法/接口中方法一致,方法体可以修改,方法名与参数类型必须一致

作用:子类扩展父类方法内容 、子类对象以及子类中在有重写方法的时候先调用重写的方法

接口:

        关键字:interface

        格式:interface 接口名{ }

内容:

        属性:都是默认由 public static final 修饰

        方法:都是抽象方法 默认由 public abstract 修饰

                抽象方法的特点是: 没有方法体

static : 静态的 特点: 唯一

        修饰属性: 静态属性 可以由类名直接调用了 并且在内存中只会存在一份

        修饰方法: 静态方法 可以由类名直接调用了 方法中不能使用本类中成员属性 

final: 最终的 特点: 不可变 不能被修改

        修饰属性: 常量 一般常量的命名规范是全部大写 不能修改值

        修饰方法: 不能被重写

类与接口的区别:

类: 抽象属性

属性: 抽象

方法: 不抽象的 具体的逻辑写定了

接口: 抽象行为

属性: 具体 静态的常量

方法: 抽象 没有具体实现内容 接口也可以看成一个类别,这个类别主要以行为/功能分类 也相当于是一个父类 继承类型

接口的使用方式:

        1:创建一个类 实现这个接口

        2:重写接口中的抽象方法为具体方法分号改为大括号

        3:方法中写上这个行为的具体实现

利用接口继承的方式,编写一个门锁开门关门的实例:

package doorlock;

interface Lock{
	void openLock();
	void closeLock();
}

class Door{
	Lock lock = null;
	void addLock(Lock lock) {
		this.lock = lock;
	}
	void openDoor(){
		if(lock == null){
			System.out.println ("Lock对象为空 请先安装锁~");
			return;
		}
		lock.openLock ();
	}
	void closeDoor(){
		if(lock == null){
			System.out.println ("Lock对象为空 请先安装锁~");
			return;
		}
		lock.closeLock ();
	}
}
// ----------以上代码不能改动------------------
class FaceIDLock implements Lock{
	public void openLock(){
		System.out.println ("人脸识别开锁");
	}
	public void closeLock(){
		System.out.println ("人脸识别关锁");
	}
}

class KeyLock implements Lock{
	public void openLock(){
		System.out.println ("钥匙开锁");
	}
	public void closeLock(){
		System.out.println ("钥匙关锁");
	}
}


class Manage{
		public static void main(String[] args){
			Door door = new Door ();
			// 配锁
			FaceIDLock faceIDLock = new FaceIDLock ();
			door.addLock(faceIDLock);
			//使用功能
			door.openDoor ();
			door.closeDoor ();
			
			KeyLock keyLock = new KeyLock ();
			door.addLock(keyLock);
			door.openDoor ();
			door.closeDoor ();
		}
	}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值