继承中的注意事项

来源:互联网 发布:男博导女博士知乎 编辑:程序博客网 时间:2024/06/06 03:36
package org.westos_01_继承;
/*
 * 继承中的注意事项:
 * 1)子类是将父类中的所有东西都会继承过来;(父类中私有的成员方法或者成员变量可以继承过来,但是不能直接访问或者直接使用,私有的只能在
 * 本类访问!)
 * 2)不要为了部分功能而使用继承
 * 3)子类不能继承父类的构造方法,但是可以通过一个关键字:super(马上将)
 * 
 * 什么情况下使用继承?
 * class A{
 * public void show(){}
 * public void show2(){}
 * }
 * 
 * class B{
 * public void show2(){}
 * public void show3(){}
 * }
 * 
 * 通过观察:B类和A类中都有一个方法:show2(){}
 * 
 * class B extends A{
 * public void show3(){}
 * }
 * 
 * 虽然用继承可以实现,但是B类继承A类,在拿到show2()方法的同时,将show()方法也继承过来了,
 * show()方法可能不是我想要的!这种情况:不要见到两个类中有共有的方法就使用继承
 * 
 * 继承体现的是一种:is a 的关系: 如果A类是B类的一种或者是B类是A类的一种,那么就可以使用继承的思想
 * 水果:
 * 苹果
 * 香蕉
 * 桃子
 * 人类:
 * 学生
 * 老师
 * 工人
 * 医生
 * 
 * java开发的原则:
 * 低耦合,高内聚
 * 耦合:类与类之间关系
 * 内聚:某一个类里面执行某一件事的能力!
 * */
class Fu{
//成员变量
public int num = 20 ;
private int num2 = 50 ;

public void show(){
System.out.println(num);
System.out.println(num2);
}

//私有的成员方法
private void method(){
System.out.println("method Fu");
}

public void function(){
method() ;
}
}




//子类
class Zi extends Fu{




//测试类
public class ExtendsDemo3 {
public static void main(String[] args) {
//创建子类对象
Zi z = new Zi() ;
System.out.println(z.num);
// System.out.println(z.num2);

z.show() ;

// z.method() ;

z.function() ;
}

}

/* 

* 类:
 * 成员变量:
 * 成员方法:
 * 构造方法
 * 
 * 在继承中成员变量的关系:
 * 1)当父类中的成员变量名称和子类中的成员变量名称不一致的情况下:很简单,分别输出就可以!
 * 2)当父类中的成员变量名称和子类中的成员变量名称一致的情况下:
 * a:现在子类 中的局部位置有没有该名称的一个变量,如果有就输出;
 * b:如果在子类的局部位置没有找到,就到子类的成员位置找,有就输出;
 * c:如果在子类的成员位置没有找到,就到父类的成员位置中找
 * d:如果父类的成员位置找不到,就报错了
 * */

原创粉丝点击