*继承
* 1.类与类之间产生关系,子类可以直接使用父类中的非私有成员,继承私有成员,但不能使用。
* 2.优点:提高了代码的复用性,维护性
* 3.缺点:降低了代码的灵活性,增强了耦合性
* 4.java支持单继承,多层继承,不支持多继承
* 5.子父类当中,出现了重名成员变量,就近原则,使用父类的成员变量,利用super()关键字
* 6.方法重写:
* 当子类需要父类的功能,而子类有自己的内容时(方法名,参数列表,返回值类型相同)
* 父类私有方法不能被重写
* 父类静态方法,子类必须静态方法进行重写,父类非静态方法,子类必须通过非静态方法进行重写(静态方法不能被重写,子类将父类中重名方法隐藏了起来)
* 子类重写方法时,访问权限必须大于父类
* 7.继承中构造方法的访问特点:
* 每一个构造方法的第一条语句默认都是:super();
* 子类初始化之前一定先完成父类的初始化,完成父类数据的初始化,通过系统在每一个构造方法中,隐藏的super()执行父类的空参构造方法,完成父类的初始化
* */
*
public class Person {
private int age;
private String name;
private String number;
public void print(){
System.out.println("子类继承父类的非私有成员");
}
}
public class test extends Person {
}
public class test1 extends test {
public void print1(){
System.out.println("多层继承");
}
}
public class TestExends {
public static void main(String[] args) {
test t = new test();
t.print();
test1 t1 = new test1();
t1.print1();
t1.print();
}
}
public class Zi extends Fu{
int a = 20;
public void method() {
int a = 30;
System.out.println(a);
System.out.println(this.a);
System.out.println(super.a);
}
}
public class Test {
public static void main (String[] args){
Zi z = new Zi();
z.method();
}
}
public class ipearV1 {
void call(String name){
System.out.println("给"+name+"打电话");
}
public void smallBlack(){
System.out.println("speak english");
}
}
public class ipearV2 extends ipearV1{
public void smallBlack(){
super.smallBlack();
System.out.println("说中文");
}
}
class Fa{
int age;
public Fa(int age){
this.age = age;
System.out.println("父类带参数构造方法访问");
}
}
class Son extends Fa{
public Son(int age){
super(age);
System.out.println("子类带参数构造方法访问");
}
}