类的继承
继承:面向对象的精华,继承可在现有类基础上进行功能扩充,此种方式可快速开发出新的类,不需要写相同的程序代码,也是代码再利用的概念
格式:
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区别
this super
属性访问 访问本类中的属性,本类中没有此属性,则从父类中查找 访问父类中的属性
方法 访问本类中的方法,本类中没有此方法,则从父类中查找 直接访问父类的方法
构造方法 调用本类构造,必须放在构造方法的首行 调用父类构造,必须放在子类构造方法首行
注:调用构造方法时,两者不能同时出现

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{

}
Java:面向对象——继承子类继承抽象类并实现接口

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

}

Java:面向对象——继承

Java:面向对象——继承抽象类实现接口

抽象类和接口的区别

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

相关文章: