Java:面向对象——继承

类的继承
继承 :面向对象的精华,继承可在现有类基础上进行功能扩充,此种方式可快速开发出新的类,不需要写相同的程序代码,也是代码再利用的概念
格式:
calss 父类{}
class 子类 extends 父类{}

继承注意事项:
1.子类可
继承父类非封装的属性和方法 ;封装的属性-子类可用setter和getter方法或者构造方法
2.子类也可以
定义自己的属性和方法
3.子类只 允许多层继承 ,不能同时继承多个父类
多重继承:
class A{}
class B{}
class C extends A{},B{}(错误)

多层继承:
class A{}
class B extends A{}
class C extends B{}(正确)

子类实例化过程:
1)子类对象在实例化之前, 先调用父类的构造方法 (对父类的属性进行初始化)
2)
再调用自己的构造方法
3)余下的父类和子类的普通方法,由子类实例对象决定调用哪个

子类覆写方式:@Override
1.子类对父类方法的覆写 (父类方法的代码不适合子类使用)
1)子类 定义了与父类中同名的方法
2)子类 覆写的方法不能拥有比父类方法更加严格的访问权限 (访问权限:private<default<public)
总结:当方法被覆写之后,子类对象调用的方法是覆写后的方法
父类方法若是private权限,则子类不能覆写
2)子类对父类属性的覆写(父类属性私有)

子类和父类声明了相同名称的属性,则在子类中直接访问时一定采用“就近访问原则”

方法重载和覆写的区别

方法重载和覆写的区别
重载覆写
单词@Overload@Override
定义类中方法名称相同,参数类型或者个数不同,对权限没要求子类和父类方法名称,参数类型,返回值类型全部相同,被覆写的方法不能拥有更严格的权限
范围发生在一个类中发生在继承类中

super关键字
super关键字可从子类中调用父类的构造方法,普通方法,属性
注:1)只能调用非封装的
       2)super调用父类中指定的构造方法操作,与this关键字用法要求一样,语句必须放在在子类构造方法的首行(即让父类的构造方法先执行)


关键字super和this的区别

关键字this和super区别
thissuper
属性访问访问本类中的属性,本类中没有此属性,则从父类中查找访问父类中的属性
方法访问本类中的方法,本类中没有此方法,则从父类中查找直接访问父类的方法
构造方法调用本类构造,必须放在构造方法的首行调用父类构造,必须放在子类构造方法首行
注:调用构造方法时,两者不能同时出现

final关键字
java中final表示意思是最终(完结器),使用final关键字声明类,属性,方法时,要注意:
1)使用final声明的类
不能有子类(即不能被继承)
2)使用final声明的方法不能被子类覆写
3)使用final声明的变量即为常量,常量不能修改


抽象类
定义:包含一个抽象方法的类必须是抽象类,关键词abstract
1)抽象方法
只需声明而不需要实现(声明不能用private,否则子类不能实现)
2)抽象类也可以有普通方法
3)抽象类也可有抽象类的构造方法
4)抽象类必须被子类继承,子类必须重写抽象类中的全部抽象方法
5)抽象类不能被直接实例化
6)抽象类专门当做父类,作用类似“模板”
==>模板设计模式

接口
接口是java中一种特殊类,是由全局常量和公共的抽象方法所组成

格式:
interface 接口名称{
   全局常量;
   抽象方法;
}
注:接口中抽象方法必须定义为public访问权限

子类实现接口
class 子类 implements 接口A,接口B{
}

总结:
1)接口可1次继承多个接口(类1次只能继承一个父类)
2)一个子类可以同时实现多个接口,且覆写接口内的全部抽象方法,这样可以摆脱java单继承的局限
   
子类继承普通类/抽象类实现接口
子类可同时继承抽象类并实现接口
格式:
class 子类 extends 抽象类 implements 接口A,接口B{

}
子类继承抽象类并实现接口

抽象类实现接口
***抽象类可实现接口,但接口不允许继承抽象类(抽象类还包含其他的属性和普通方法,但接口只有抽象方法),允许一个接口继承多个接口
abstract 子类 implements 接口A,接口B
格式:
interface 子接口 extends 父接口A,父接口B{

}

抽象类实现接口

抽象类和接口的区别

接口和抽象类的区别
抽象类接口
定义包含一个抽象方法的类抽象方法和全局变量的集合
组成构造方法,抽象方法,普通方法,常量,变量抽象方法,常量
使用子类继承抽象类(extends)子类实现接口(implements)
关系抽象类可以实现多个接口接口不能继承抽象类,但允许继承多个接口
局限抽象类有单继承的局限接口没有此局限
选择如果抽象类和接口都可以使用,优先使用接口,避免单继承局限
设计模式模板设计工厂设计
实际作为一个模板作为一个标准或表示一种能力
进阶
对象都通过对象的多态性产生实例化对象(共同点)
特殊一个抽象类中可包含多个接口,一个接口可以包含多个抽象类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值