3_Java面向对象编程_继承性

3_Java面向对象编程_继承性

目的:复用代码

Studen类继承于Person类。

class Student extends Person

编译规范,类名称需要首字母大写,方法第一个单词首字母小写,第二个大写。

方法可以复写

class Person {
	public void printInfo() {
		System.out.println("age = "+age);
	}
}

class Student extends Person{
	/* override */
	public void printInfo() {
		System.out.println("school = "+school+"; age = "+getAge());
	}
	
}

父类与子类构造函数的关系

初始化时子类首先调用父类的无参构造函数。

super表示父类。

class Person {
	public Person (int age) {
		System.out.println("Person (int age)");
		this.age = age;
	}
}

class Student extends Person{

	public Student(String school) {
		/* will call the super() */
		//super();//不写或写super会调用父类的无参构造函数。
		super(5);//调用父类的构造函数。
		System.out.println("Student(String school)");
		this.school = school;
	}
}

public class Ext4 {
	public static void main (String args[]) {
		Student stu = new Student("ustc");
	}
}

抽象方法

抽象方法只声明,不能够实例化对象。由子类extend后再实现其所有的抽象方法。

abstract class Father {
	private int money;	

	public int getMoney() {return money; }
	public void setMoney(int money) {this.money = money; }

	public abstract void study();
}

class Son extends Father{
	public void study() {System.out.println("I am study"); }
	
}

public class Ext6 {
	public static void main (String args[]) {
		//Father f = new Father();//class Father是抽象类,不能够实例化对象。
		Son son = new Son();
		son.study();
	}
}

 接口

抽象类中一个子类只能继承一个父类,而接口可以突破这个限制。一个子类可以实现多个接口。

接口中都是全局常量与抽象方法

abstract class Father {
	private int money;	

	public int getMoney() {return money; }
	public void setMoney(int money) {this.money = money; }

	public abstract void study();
}

interface A {
	public static final int i = 10;
	public abstract int getNum();
}

interface B {
	public static String name = "InterfaceB";
	public abstract String getName();
}

class Son extends Father implements A,B{//需要实现抽象方法getNum与getName
	public int getNum() {return i;}
	public String getName() {return name;}
	public void study() {System.out.println("I am study"); }
	
}

public class Ext7 {
	public static void main (String args[]) {
		Son son = new Son();
		System.out.println(son.getName());
		son.study();
	}
}

抽象类与接口的区别

抽象类:可以定义变量与常量,还可以定义普通的方法。

接口:只能定义常量与抽象类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值