继承的实现
使用extends关键字完成继承
class 子类 extends 父类{}
java中只允许单继承,但可以多层继承
子类不能直接访问父类的私有成员,可以通过get()或set()来访问
在子类对象实例化之前,必须先调用父类中的构造方法,之后再调用子类的构造方法
方法的重写
在继承中,也存在着重写的概念,其实就是子类定义了和父类同名的方法
定义:方法名相同,返回值类型相同,参数也相同
‘super’关键子,在子类中调用父类被重写的方法
class A{
public void tell() {
System.out.print(“我是tell方法”);
}
}
class B extends A{
public void tell() {
super.tell();//调用父类的tell方法
System.out.print("我重写了tell方法");
}
}
public class text01_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
B b=new B();
b.tell();
}
}
重写限制:被子类重写的方法不能拥有比父类方法更加严格(访问权限更小,基本上是一样的访问权限)的访问权限
访问权限
private(封装时用,只能在当前类访问)<default(只能在当前包下访问)<public(整个工程都可以访问)
super
强行执行父类的方法,父类先执行,再执行子类
重写与重载
定义不同,
重写:方法名、参数、返回值全部相同
重载:方法名相同,参数的个数或者类型不同
权限:
重写:被子类重写的方法不能拥有比父类方法更加严格的权限
重载:对权限没有要求
范围:
重写:发生在继承中
重载:发生在一个类中
final关键字
final关键字在java中被成为完结器,表示最终的意思
final能声明类、方法、属性
使用final声明的类不能被继承
使用final声明的方法不能被重写
使用final声明的变量变成常量,常量是不可以被修改的
抽象类
概念:包含一个抽象方法的类就是抽象类,必须用abstract声明
抽象方法
声明而未被实现的方法,抽象方法必须使用abstract关键字声明
继承抽象类
抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
定义格式
abstract class className{
属性
方法
抽象方法
}
抽象类不能直接实例化,要通过子类进行实例化
接口
借口可以理解为一种特殊的类,里面全部是由全局常量(public static final int AGE=100;)和公共的抽象方法所组成
格式:
类继承接口的方式
interface interfaceName{
全局常量
抽象方法
}
interface inter{
public static final int AGE=100;
public abstract void tell();
}
借口继承接口的方式
inerface A extends B,C,D{}//A\B\C\D都是接口
接口的实现也必须通过子类,使用implements实现,而且接口是可以多实现的
要调用接口内的全局常量,必须使用 接口名.常量名 的方式来调用,因为借口是一个特殊的类
本文来自博客园,作者:NE_STOP,转载请注明原文链接:https://www.cnblogs.com/alineverstop/p/18004721