java 学习之继承与多态
2018/11/6
面向对象的3个基本特征是:封装(主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现)、继承(很好的实现了代码的复用,提高了编程效率)、多态(程序的可拓展性及可维护性增强)。
继承
- 声明一个继承父类的类的通常形式如下:
class subclass-name extends superclass-name{
//类体
}
class Human{
String name;
char sex;
Human(){
}
Human(String n,char s){
name=n;sex=s;
}
public String getName() {return name;}
public char getSex() {return sex;}
}
class Worker extends Human{
char category;
int workAge;
Worker(){
}
Worker(String n,char s,char c,int w){
name=n;sex=s;category=c;workAge=w;
}
public char getCategory() {return category;}
public int getWorkAge() {return workAge;}
}
public class Hello{
public static void main(String args[]) {
Worker laowang=new Worker("langwang",'M','B',40);
System.out.println("姓名:"+laowang.getName());
System.out.println("性别:"+laowang.getSex());
System.out.println("类别:"+laowang.getCategory());
System.out.println("工龄:"+laowang.getWorkAge());
}
}
- 关于super关键字
super指代父类,可以调用父类中的普通方法和构造方法
super主要有两种方法 :
super.成员变量/super.成员方法
super(parameter1,parameter2…)
第一种方法主要用来在子类中调用父类的同名成员变量或者方法;
第二种方法主要用来在子类的构造方法中显式地调用父类的构造方法(如果是用在子类构造方法中,则必须是子类构造方法的第一个语句);
多态
同一消息可以根据发送对象的不同而采用多种不同的行为方式。
class Car{
public void brake() {};
}
class SUV extends Car{
public void brake() {
System.out.println("正在SUV上刹车");
}
}
class Truck extends Car{
public void brake() {
System.out.println("Truck上刹车");
}
}
public class ui {
public static void main(String args[]) {
Car c=new Truck();
System.out.print("调用的方法为:");
c.brake();
c=new SUV();
System.out.print("调用的方法为:");
c.brake();
}
}