JAVA 继承
继承:就是子类继承父类的特征和行为,使子类对象(实例)具有父类的实例域和方法。或子类从父类继承方法,使得子类具有父类相同的行为。(Java不支持多继承、但支持多重继承)
继承优点:提高代码的复用性、维护性,使代码更加简介。
建立一个公共的父类:
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 + " .");
}
}
在建立一个子类:
public class Mouse extends Animal
{
public Mouse(String myName, int myid)
{
super(myName, myid);
}
}
继承的特性
1.子类可以拥有父类非private的属性,方法。
2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
3.子类可以用自己的方式实现父类的方法。
4.Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类。
5.提高了类之间的耦合性(相对缺点是代码的独立性较差)
继承关键字
继承可以使用extends(继承类)和implements(继承接口)这两个关键字实现。并且所有的类都是继承Java.lang.Object。当一个类没有继承关键字,则默认继承object(这个类子在Java.lang包中,所以不需要import)祖先类。
extends关键字:
在Java中类的继承是单一继承。
例如:
public class Animal
{
private String name;
private int id;
public Animal(String myName, int myId)
{
//初始化属性
}
public void eat()
{
///实现吃东西的具体方法
}
}
public class Mouse extends Animal
{
}
super 与this 关键字
super关键字:
我们可以通过super关键字来是新啊对父类成员的访问,用来引用当前的对象的父类。
this关键字:
指向自己的引用。
class Animal
{
void eat()
{
System.out.println("animal: eat");
}
}
class Dog extends Animal
{
void eat()
{
System.out.println("dog :eat")
}
void eatTest()
{
super.eat(); /// 调用父类的方法
this.eat(); //调用自己的方法
}
}
public class Test
{
public static void main(String[] args)
{
Animal a=new Animal();
a.eat()
Dog d = new Dog();
d.eatTest();
}
}
结果是:
animal :eat
dog : eat
animal : eat
final关键字
final 关键字声明类可以把类定义为不能继承的,即为最终类;或者用于修饰方式,该方法不能被子类重写。
声明类:
final class 类名 { //类名}
声明方法:
修饰符(public/private/default/protected final 返回值类型 方法名()
{
//方法体
}
注:实例变量也可以被定义为final,被定义为final的变量不能被修改。