面向对象之继承

面向对象之继承

定义:java中,使用extends关键字,在两个类之间建立的一种关系叫做继承
父类和子类
	被继承的类通常被叫做父类,也叫超类,基类等
	使用继承的类叫子类,也叫派生类
使用格式
	声明子类时 使用extends关键字加上父类类名
继承的好处
	1.提高了代码的复用性
	2.提高了代码的可维护性
	3.为多态的使用提供基础
继承的弊端
	使代码之间出现了耦合度(就是事物之间出现相互依赖,相互影响的关系)
继承的注意事项
	1.java中是单继承的关系,即一个类只能有一个父类
	2.类中的私有成员不能被继承
	3.构造方法不能被继承
	4.一般只有在两个类表示的事物具有某种关系是才使用继承,即子类所描述的事物事父类所描述事物的一个特例

this关键字和super关键字

都可访问成员变量
	this 既可以访问父类的成员变量也可以访问子类的成员变量,优先访问子类的成员变量
	super 只能访问父类的成员变量
都可以访问成员方法
	this 可以访问父类的的成员方法和子类的成员方法,优先访问子类的成员方法
	super 只能访问父类的成员方法
都可以访问构造方法
	this() 用于访问子类中的构造方法
	super() 用于访问父类中的构造方法
注: 继承中的构造方法
	子类在创建对象的时候首先会创建父类的对象,即子类在调用构造方法的时候后优先调用父类的构造方法
		如果父类有无参构造方法,子类的构造方法就不需要显示调用,会自动调用父类的无参构造方法
		如果父类没有无参构造方法,那么子类的构造方法第一句必须是显示调用父类的有参构造方法

方法的重写

Override即重写
	重写的前提是继承
	要求:方法名相同,参数列表相同,返回值类型相同(父类返回值类型的子类也可),重写的方法的访问权限不能比父类低
对比Overload即重载
	方法的重载前提是在一个类中
	要求:方法名相同,参数列表不同(与参数的个数,参数的类型,参数类型的顺序有关),与返回值类型无关

final关键字

final 最终的意思
	可以修饰类,方法,变量
	被final修饰的类不能被继承
	被final修饰的方法可以被继承但不能被重写
	被final修饰的变量即常量,不能被修改
	常量的标准写法
		public static final 数据类型 常量名 = 值

多态

定义:就是一个事物的多种不同的表现形式
	在Java中简单来说就是一个父类引用指向多个不同的子类对象
	多态满足的条件:
		1.要有继承关系
		2.有方法的重写
		3.父类的引用执行子类的对象,调用子类的方法
	多态的引用
		1.子类有,父类有,调用子类的
		2.子类没有,父类有,调用父类的
		3.子类有,父类没有,就找不到会报错

多态用法举例

	//定义A类
	class A{
		public void show(){
		System.out.print("A");
		}
	}
	//定义B类继承A类重写show方法
	class B extends A{
		public void show(){
		System.out.print("B");
		}
	}
	//测试类
	class test{
		public static void main(String[] args){
			//A类的引用指向B类的对象,即多态
			A a=new B()
			//调用多态方法
			a.show();
			//这里打印的是B,多态方法中子类有父类也有的情况下,就调用子类的方法
		}
	}	

多态的类型转换

自动向上转型: 将子类对象赋值给父类引用,可以自动进行,自动提升子类对象的类型
如 A a=new B();就是把B对象的类型自动转成了A对象的类型
强制向下转型: 将父类引用转为子类引用,需要进行强制类型转换
B b=(B)a;这里将A类型的引用转换为B类型就需要强转
注:
	只有发生了向上转型的情况,才能向下转型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值