面向对象

什么是继承?

概念

在面向对象编程中,可以通过扩展一个已有的类,并继承该类的方法和属性来创建一个新的类,这种方式为继承

定义

继承描述是类与类之间的关系,子类(派生类)继承父类(基类、超类),
子类享有父类的属性和方法,这就是继承

继承的作用:提高代码的可重用性
继承的语法
**子类extends父类{
	
}
关系:is a 关系**
继承的优点
**子类可以扩展父类的属性和方法
代码的可重用性
设计应用变得更加简单
父类的属性和方法可以用于子类**
继承的两大特点
1、单根性(一个子类只能有一个父类) 
2、传递性(儿子可以继续传递给孙子。。。。)
是不是?只要子类继承了父类就会享有父类的所有属性和方法呢?
**不是! 访问修饰符可以约束


访问修饰符分类		在当前   在当前包中   在当前包    在不同包   在不同包
					类中     的不同类	  中子类      中的子类	中的不同类
private(私有的)	√			×			×			×			×
默认					√			√			√			×			×
protected(保护的)	√			√			√			√          ×
public(公共的)		√			√			√			√			√**
所有类的根类都隐式的继承了Object
**语法:
	class 任意类名 extends Object{

	}**
Object默认有如下方法
	**public final Class getClass();
	public int hashCode();
	public boolean equals(Object x);
	protected Object clone() throws CloneNotSupportedException;
	public String toString();
	protected void finalize() throws Throwable;
	public final void wait() throws InterruptedException;
	public final void notify();**

方法重写:(Override)

子类可以重写父类继承的方法,从而允许子类添加或者改变父类中方法的行为。这种方法
称为方法重写
方法重写需满足以下条件
1、子类中重写父类的方法名称和形式参数(参数类型、个数、顺序)必须与父类相同
2、访问修饰符必须不小于父类中的访问修饰符。默认<protected
3、子类中重写的异常不能抛出比父类更多的异常
4、子类的返回参数类型,必须与父类相同(注意:返回类类型时,子类不能大于父类的类型)

Override注解检查是否是属于方法重写:如果不满足方法重写的条件报红色错误
			在企业要求中,一般需要将Override
	子类实例化过程
子类实例化过程中的调用的步骤
1、调用父类的属性
2、调用父类的构造方法
	当父类中写了有参的构造函数,子类想要去调用父类的有参构造函数需要通过
	super(参数列表)方式才能调用,如果子类还想去调用父类的无参构造函数,
	就必须在父类中写出无参的构造函数,否则会报错
3、调用子类的属性
4、调用子类的构造方法	
怎么判断实例化过程中是先调用属性还是构造方法
方法栈 先进后出

this关键字和super关键字的区别

不同点:
1、this代表当前对象自身的引用
2、this.属性 :获取当前对象的属性
3、this(参数列表)在当前构造函数中调用其他的构造函数(有参或无参)
4、super.***或super.***()代表每个类中指向父类对象的引用
5、super(...)代表调用父类中指定的构造函数
this不能调用父类
相同点:
super()和this.()只能放在构造器的第一句

方法重写(Override)与方法重载(Overload)的区别-面试常问

1、方法重载Overload关注当前类中的方法,而方法重写是关注子类与父类(继承)。
2、方法重载Overload中方法名称相同,但是参数个数、类型、顺序不同。
   在方法重写Override中方法名称、参数个数、类型、顺序必须相同。
3、方法重载Overload中不需要关注返回类型,但是在方法重写Override中
   子类的返回类型必须与父类相同。(注意:返回类类型时,子类不能大于父类的类型)
4、方法重载Overload中不需要关注访问权限修饰符,但是在方法重写Override中
   子类的访问权限修饰符必须等于或者增大,不能缩小。

再论final关键字

1、final修饰的属性称之为常量且必须赋初始值。
2、final修饰的类称之为"终态类"或"最终类",且不能被继承
	public final class Father{}
3、final修饰的方法称之为"最终方法",且不能被重写。可以调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值