继承
继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。
继承格式
格式:
public class 子类名 extends
父类名{ }
范例:
public class Zi extends
Fu { }
Fu:
是父类,也被称为基类,超类
Zi:
是子类,也被称为派生类
继承中子类的特点
1.子类可以有父类内容
2.子类还可以有自己特有的内容
package cn.tedu;
public class Fu {
public void show(){
System.out.println("show方法被调用");
}
}
package cn.tedu;
public class Zi extends Fu{
public void method(){
System.out.println("method方法被调用");
}
}
package cn.tedu;
public class Demo {
public static void main(String[] args) {
//创建对象,调用方法
Fu f=new Fu();
f.show();
Zi z=new Zi();
z.method();
z.show();
}
}
继承的好处和弊端
1.继承的好处
1.提高了代码的重复性
(多个类相同的成员可以放到一个类中)
2.提高了代码的维护性
(如果方法的代码需要修改,修改一处即可)
2.继承的弊端
继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,消弱了子类的独立性
3.什么时候使用继承?
1.继承体验的关系:is a
2.假设法: 我有两个类A和B,如果他们满足A是B的一种,或者B是A的一种,就说明他们存在继承关系,这个时候就可以考虑使用继承来体现,否则就不能滥用继承。
继承中变量的访问特点
package cn.tedu;
public class Fu {
public int age=40;
}
package cn.tedu;
public class Zi extends Fu{
public int height=175;
public int age=20;
public void show(){
//int age=30;
System.out.println(age);
System.out.println(height);
}
}
package cn.tedu;
public class Demo {
public static void main(String[] args) {
//创建对象,调用方法
Zi z=new Zi();
z.show();
}
}
package cn.tedu;
public class Fu {
public int age=40;
}
package cn.tedu;
public class Zi extends Fu{
public int height=175;
public int age=20;
public void show(){
int age=30;
System.out.println(age);
System.out.println(height);
}
}
package cn.tedu;
public class Demo {
public static void main(String[] args) {
//创建对象,调用方法
Zi z=new Zi();
z.show();
}
}
在子类方法中访问一个变量
1.子类局部范围找
2.子类成员范围找
3.父类成员范围找
4.如果都没有就报错(不考虑父亲的父亲…)
java中继承的注意事项
- Java中类只支持单继承,不支持多继承
- Java中类支持多层继承