Java ||继承
JAVA || 继承
-
继承是什么? 有什么用?
像现实中的儿子和父亲。
基本作用: 子类继承父类,代码可以得到复用。
重要(主要)作用:因为有了继承关系,才有了后期的方法覆盖和多态机制。 -
继承的语法格式
class 类名 extends 父类名 {
类体;
} -
java的相关继承特性
1)B类继承A类,则称 A 为父类、基类、超类(superclass),称B类为类(subclass)、派生类、扩展类。
2)java中的继承只支持单继承,不支持多继承。C++支持多继承,这也是java体现简单性的一 点。换句话说,java中不允许这样写 class a extends b,c { }
3) 虽然java中不支持 多继承,但是有的时候会产生间接继承的效果。
例如: class C extends class B {}
class B extends class A {} 也就是说C直接继承了B,B间接继承了A。
4)java中规定,子类继承父类 ,除构造方法不能继承,剩下的都可以继承,但是私有的属性无法在子类中直接访问,可以间接访问。
5)java中的类没有显示的继承任何类,则默认继承object 类,objec类是Java语言提供的根类(老祖宗类),也就是说,一个对象与生俱来就有 object类型中所有的特征。
6)继承也存在一些缺点, 耦合度太高。父类修改,子类受牵连。
· 子类对象继承父类方法后,可以使用子类对象调用父类方法吗?
可以,当子类对象继承父类后,这个方法就属于子类了。
- 在实际开发中,满足什么条件可以使用继承?
· 凡是使用“is a” 描述的,都可以继承:
例如: cat is a animal
dog is a animal
bird is a animal
……
就算class A 和 class B有很多重复代码,但如果不能用 B is a A 来描述,也不能使用继承。
代码演示:
public class O001 {
public static void main(String[] args) {
Bird q = new Bird();
q.move();
}
}
class Animal{
public void move(){
System.out.println("动物在移动");
}
}
class Bird extends Animal {
}
程序输出结果:动物在移动
此时的程序并不能满足需求,程序最好输出 动物在移动,鸟儿在飞翔。
代码的优化涉及到方法的覆盖。
先上优化后的代码;
public class O002 {
public static void main(String[] args) {
monkey q = new monkey();
q.movee();
bird w = new bird();
w.movee();
dog e = new dog();
e.movee();
}
}
class Animals{
public void movee(){
System.out.println("动物在移动");
}
class bird extends Animals{
public void movee(){
System.out.println("
上一篇: 多线程--Thread中的常用方法
下一篇: 反射机制读写对象的属性Field