
Java06-封装继承与多态
Task1.继承
继承是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 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类就作为一个父类,企鹅类和老鼠类继承这个类之后,就具有父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码)
java
public class Penguin extends Animal {
public Penguin(String myName, int myid) {
super(myName, myid);
}
}public class Penguin extends Animal {
public Penguin(String myName, int myid) {
super(myName, myid);
}
}java
public class Mouse extends Animal {
public Mouse(String myName, int myid) {
super(myName, myid);
}
}public class Mouse extends Animal {
public Mouse(String myName, int myid) {
super(myName, myid);
}
}请注意,java并不支持多继承,这是为什么?
Task2.多态
多态是同一个行为具有多个不同表现形式或形态的能力。
你知道@Override吗,他负责在子类重写父类的方法来实现不同类的运算逻辑,请完成以下问题:
对几何图形进行建模并完成圆,三角形,矩形的周长,面积计算
其实还有另一种做法,使用接口来完成,请你给出使用接口的解答
Task3.封装
在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
请你说明public,private等关键词的用法
并完成以下代码
java
public class BankAccount {
// TODO 修改属性的可见性
String accountNumber;
String accountHolder;
double balance;
String password; // 敏感信息,需要严格保护
BankAccount(String accountNumber, String accountHolder, double initialBalance, String password) {
//TODO
}
void deposit(double amount) {
//TODO
}
boolean withdraw(double amount, String inputPassword) {
//TODO
}
boolean transfer(BankAccount recipient, double amount, String inputPassword) {
//TODO
}
double getBalance() {
//TODO
}
String getAccountInfo() {
//TODO
}
// 只需修改可见性
boolean validatePassword(String inputPassword) {
return true;
}
// 只需修改可见性
boolean validateAmount(double amount) {
return true;
}
}public class BankAccount {
// TODO 修改属性的可见性
String accountNumber;
String accountHolder;
double balance;
String password; // 敏感信息,需要严格保护
BankAccount(String accountNumber, String accountHolder, double initialBalance, String password) {
//TODO
}
void deposit(double amount) {
//TODO
}
boolean withdraw(double amount, String inputPassword) {
//TODO
}
boolean transfer(BankAccount recipient, double amount, String inputPassword) {
//TODO
}
double getBalance() {
//TODO
}
String getAccountInfo() {
//TODO
}
// 只需修改可见性
boolean validatePassword(String inputPassword) {
return true;
}
// 只需修改可见性
boolean validateAmount(double amount) {
return true;
}
}本题提交方式
出题人联系方式
出题人QQ:3425282590