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)不要为了部分功能而使用继承
* 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:如果父类的成员位置找不到,就报错了
* */