外贸快车做网站怎么样,为什么两学一做进不去网站,app软件开发合同范本,龙之向导外贸专区目录 继承#xff1a;
super关键字#xff1a;
方法重写#xff1a;
继承特点#xff1a;
继承构造方法#xff1a;
final关键字#xff1a; 继承#xff1a;
意义#xff1a;让类于类之间产生父类于子类的关系#xff0c;子类可以直接使用父类中的非私有成员(包…
目录 继承
super关键字
方法重写
继承特点
继承构造方法
final关键字 继承
意义让类于类之间产生父类于子类的关系子类可以直接使用父类中的非私有成员(包括方法与成员变量) 。 extends关键字就是定义声明父类。 格式public class 子类 extends 父类。
对于基础的我就不赘述了我们直接讲一些实用一点的操作。
super关键字 举个例子
class Fu{int num10;
}class Zi extends Fu
{int num20;public void Fuc(){System.out.println(num);}
}public static void main(String[] args) {Zi z1new Zi();z1.Fuc();}
这里面的主方法会打印什么呢
如果我们想打印父类里的10我们需要用到super 结果就会变为10
可见super可以用来区分父子类里面的相同成员。
方法重写 这里的方法重写与方法重载不一样哟当字父子类出现完全一摸一样的方法时, 在创建子类对象调用方法时会优先调用子类的方法的逻辑。这其实就是子类的方法对父类的方法进行了方法重写。且我们通过override识别方法重写。 如父子类都有Fuc方法
class Fu{int num10;public void Fuc(){System.out.println(666);}
}class Zi extends Fu
{int num20;Override//如果这没报错就是方法重写public void Fuc(){System.out.println(555);}
}public static void main(String[] args) {Zi z1new Zi();z1.Fuc();}
打印的是555 那我们怎么调用到父类的方法呢就是用super
class Zi extends Fu
{int num20;Overridepublic void Fuc(){super.Fuc();System.out.println(555);}
} 两个方法都打印了。 其实方法重写作用就是我们对父类方法的修改和增强。tip私有的父类不能重写子类在重写时访问权限一定要大于等于父类的方法。 继承特点 Java继承只支持单继承不支持多继承但支持多层继承。 单继承多继承就是只能继承一个父类不能继承多个类。 多层继承就像这个图一样
继承构造方法
构造方法不支持继承所以构造方法需要自己写,子类在初始化之前需要对父类进行初始化而且所有的类构造方法中有隐藏了一句supper()代码这是用来调用父类的无参构造。
我们先简单理解一下super(); class Fu{int a;int b;public Fu() {}
}class Zi extends Fu
{int c;int d;public Zi() {}public void Func(){System.out.println(abcd);}
}public static void main(String[] args) {Zi z1new Zi();z1.Func();}
这次会打印什么呢可见他将abcd全部都初始化了就证明了调用了子父类的无参构造。
那为什么说所有类都有super()呢
其实所有的类直接或间接的继承了object类这里不多说但是可以证明的是每个类都有除本身外其他的一些方法如
final关键字 对于final关键字其实就感觉像是c/c里的const 特性1.修饰方法就表明是最终方法该方法不能被重写。 2.修饰类就表明是最终类该类不能被继承。 3.修饰变量说明是常量不能再次被赋值类似于const修饰的变量。
tipfinal修饰成员变量时不能被修饰默认值说明就被修饰的变量一定要初始化要么直接声明定义在一起要么在构造方法里初始化。 final修饰的规范全用大写用下划线来分割单词如MAX_NUM