java 继承
Posted 流星雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 继承相关的知识,希望对你有一定的参考价值。
一.继承
概念
继承就是子类继承父类的特征和行为,使得子类从父类继承方法,
使得子类具有父类相同的行为。类的继承格式
class 父类 {
}
class 子类 extends 父类 {
}为什么需要继承
企鹅类:
public class Penguin {
private String name;
private int id;
public Penguin(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introduction() {
System.out.println("大家好!我是" + id + "号" + name + ".");
}
}
老鼠类:
public class Mouse {
private String name;
private int id;
public Mouse(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introduction() {
System.out.println("大家好!我是" + id + "号" + name + ".");
}
}
【如果要开发一个类(动物类)中老鼠类和猫类,就需要属性和方法,代码就会存在重复,所以要从根本上解决问题,就需要继承,将两段代码中相同的部分提取出来组成一个父类:】
公共类:
public class Animal {
private String name;
private int id;
public Animal(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introduction() {
System.out.println("大家好!我是" + id + "号" + name + ".");
}
}
【这个Animal类就可以作为一个公共类,然后企鹅类和老鼠类继承这个类之后,就有公共类当中的属性和方法,子类就不会存在重复的代码,,代码也更加简洁, 继承之后的代码:】
企鹅类:
public class Penguin extends Animal {
public Penguin(String myName, int myid) {
super(myName, myid);
}
}
老鼠类:
public class Mouse extends Animal {
public Mouse(String myName, int myid) {
super(myName, myid);
}
}
注意
Java 不支持多继承,但支持多重继承。
单继承 public class A{....} public class B extends A{...}
多重继承 public class A{...} public class B extends A{...} public class C extends B{...}
不同类继承同一类 public class A{...} public class B extends A{...} public class C extends A{...}
多继承(不支持) public class A{...} public class B{...} public class C extends A,B{...}
重写
如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写
方法重写 :写与父类雷同的成员方法时,会更新父类,称为重写。声明不变,重新实现。class Fu { public void show() { System.out.println("Fu show"); } } class Zi extends Fu { 【子类重写了父类的show方法】 public void show() { System.out.println("Zi show"); } } class Demo10{ public static void main(String[] args) { Zi z = new Zi(); 【子类中有show方法,只执行重写后的show方法】 z.show(); // Zi show } }
super与this关键字
super:对父类的访问。
this:指向自己的。class shueiguo { public void e() { System.out.println("红"); } } class pingguo extends shueiguo { public void e() { System.out.println("红"); } } public void ee() { this.eat(); 【this 调用本类的方法】 super.eat(); 【 super 调用父类的方法】 } } public class Demo08 { public static void main(String[] args) { shueiguo a = new shueiguo(); a.e(); pingguo c = new pingguo(); c.ee(); } }
结果:
shueiguo : 红 pingguo : 红 shueiguo :红
以上是关于java 继承的主要内容,如果未能解决你的问题,请参考以下文章