一.继承
概念
继承就是子类继承父类的特色和行为,使得子类从父类继承办法,
使得子类具备父类雷同的行为。类的继承格局
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");
}
}
public 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 :红