继承与多态

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();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值