扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
上一个回答太简单,我再补充一下
创新互联于2013年开始,先为温岭等服务建站,温岭等地企业,进行企业商务咨询服务。为温岭企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
派生类继承基类有三种public(公有继承),protected(保护继承)和private(私有继承)所以可以这样写:
public class B : public A
{}
protected 和 private同样。
还有
B b = new B(); 是java中创建派生类的方法。
如果是C++的话,应该是这样的:
B b(参数);
abstract class BankCard {
protected String name;
protected String cardNo;
protected double money;
public BankCard(String name, String cardNo, double money) {
super();
this.name = name;
this.cardNo = cardNo;
this.money = money;
}
public String getName() {
return name;
}
public String getCardNo() {
return cardNo;
}
public double getMoney() {
return money;
}
public abstract void unputMoney(int someMoney);
public void putMoney(int someMoney) {
this.money += someMoney;
}
}
class ForeignCard extends BankCard {
public ForeignCard(String name, String cardNo, double money) {
super(name, cardNo, money);
}
@Override
public void unputMoney(int someMoney) {
double left = getMoney() - someMoney * 1.01;
if(left = 0) {
super.money = left;
} else {
throw new RuntimeException("余额不足");
}
}
}
class LimitedCard extends BankCard {
public LimitedCard(String name, String cardNo, double money) {
super(name, cardNo, money);
}
@Override
public void unputMoney(int someMoney) {
if(someMoney 1000) {
throw new RuntimeException("取款不能超过1000");
}
if(getMoney() someMoney) {
throw new RuntimeException("余额不足");
}
super.money -= someMoney;
}
}
这是父类引用指向子类对象,多态的基础知识;
父类引用指向子类对象指的是:
例如父类Animal,子类Cat,Dog。其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类。
Animal animal = new Cat();
即声明的是父类,实际指向的是子类的一个对象。
那这么使用的优点是什么,为什么要这么用?可以用这几个关键词来概括:多态、动态链接,向上转型
也有人说这是面向接口编程,可以降低程序的耦合性,即调用者不必关心调用的是哪个对象,只需要针对接口编程就可以了,被调用者对于调用者是完全透明的。让你更关注父类能做什么,而不去关心子类是具体怎么做的,你可以随时替换一个子类,也就是随时替换一个具体实现,而不用修改其他
你这里直接调用 A.属性名就可以改了啊,本来就有了,想怎么初始化就怎么初始化,还复制什么啊,根本不需要啊,只要是父类A里面有的属性就自然有了,除非是子类B自己新增的成员变量才不能用A.属性名来调用。
.
Java源程序:
class A{
protected int a;
protected int b;
public A(int a, int b){
this.a = a;
this.b = b;
}
}
class B extends A{
protected int c;
//此入必须改动,否则是一种面向对象方面的错误
public B(int a, int b, int c) {
super(a, b);
this.c = c;
}
public int add(){
return a + b + c;
}
}
public class Exam02 {
public static void main(String[] args) {
B e1 = new B(3, 4, 5);
System.out.println(e1.add());
}
}
运行测试:
12
代码如下:package com.zte;
public class People {
protected String name;
protected int age;
public People() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Employee extends Person {
protected String empno;
public Employee() {
}
}
class Teacher extends Person {
protected String teano;
protected String zc;
public Teacher() {
}
}
//建议成员变量使用private;类名使用大写开头。
利用继承机制,新的类可以从已有的类中派生。那些用于派生的类称为这些特别派生出的类的“基类”。
基类说明:在Java中要定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员,我们称已存在的用来派生新类的类为Java基类,又称为父类。
基类表:基类表中存放各个基类名称。
基类说明符:基类类体中类成员的访问说明符。
扩展资料:
Java的三大特性:封装,继承,多态
封装:封装的主要作用是实现软件部位的“高内聚,低耦合”,防止程序相互依赖而带来的影响,封装主要是将对象的方法和属性封装到一个模块中,将这个模块中的属性私有化,只有这个类的方法和属性才能访问这个类的属性,这就基本实现了类的封装。封装分为封和装的两个步骤,装即将对象的属性和方法封装到一个类中,封即将对象的属性私有化,并且提供get/set方法以用来外部访问。
继承:在定义一个和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把已存在的类定义的内容作为自己的内容,并可以加入自己新的内容,或修改已定义的方法,让他更适合自己的需要,继承主要继承的是类的方法和属性,方法主要是对方法使用权限的继承,并不是对代码片段的继承,属性的继承,即是对成员变量的拷贝,是对内存空间的拷贝(堆内存)。
多态:多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译期时并不确定,而是在方法的运行期才确定,即一个引用变量到底指向哪一个类的实例对象,该引用变量发出的方法到底会调用哪个类中的实现方法,必须在程序运行期才能确定。因为在 程序运行时才能确定哪个类,所以可以不用修改代码,就可以让应用变量绑定到不同的类上实现,让程序可以选择多个运行状态,这就是多态
参考资料:百度百科——派生类
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流