java中继承说明

 继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。
 继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承类A(B extends A),那么B就拥有A的属性和方法。
 继承使用extends关键字

 class Person{

  String name="zhoumo";
  int age=27;
  public void say() {
   System.out.println("我的名字叫"+name+",今年"+age+"岁");
  }

}

Person类有name和age属性,还有say方法

class Student extends Person{
 int height=175;
 int weight=130;
 public void againSay(){
  System.out.println("我的名字叫"+name+"。今年"+age+"岁,身高"+height+"体重"+weight);
  }
 }

Student 类继承了Person类,那么父类中的非private属性就可以被子类所用,所以子类中虽然没有再次定义name和age属性,但依然可以使用name和age。

public class ZhouMo {
 public static void main(String[] args) {
  Student st = new Student();
  st.againSay();
  st.say();
 }
}

 

运行结果为:

我的名字叫zhoumo。今年27岁,身高175体重130
我的名字叫zhoumo,今年27岁

 

扩展一下

class Wine{
 public void fun1() {
  System.out.println("Wine 的Fun...");
  fun2();
 }
 public void fun2() {
  System.out.println("Wine 的Fun2..");
 }
}

class JNC extends Wine{
 public void fun1(String a) {
  System.out.println("JNC的Fun1...");
  fun2();
 }
 public void fun2() {
  System.out.println("JNC 的Fun2...");
 }
 
}

public class DuoTai {
 public static void main(String[] args) {
  Wine a = new JNC();
 // a.fun1("a");

a.fun1();
 }
}

 打印结果为:

Wine 的Fun...
JNC 的Fun2...

如果把调用a.fun1()改成a.fun1("a");会报错,原因是这样的,子变父,子类覆写父类的方法,则保留子类的方法,子类有的方法父类没有,则去掉子类的方法,

Wine a = new JNC();

则a拥有的方法有public void fun1(); JNC 的public void fun2();
 

posted @ 2018-06-08 11:14  小周末诞生  阅读(171)  评论(0)    收藏  举报