日期: 2022-09-21 05:11:56 浏览数:18

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
邹城企业网站设计 - 邹城高端网站定制 - 邹城品牌网站搭建 - 上往建站

Penguin 需要通过关键字 super 进行声明
public class Penguin extends Animal {
public Penguin(String myname,int myid) {
super(myname,myid); // 声明继承父类中的两个属性
}
}
具体通过有参构造函数进行继承。
public class PenguinQQ {
public static void main(String[] args) {
// TODO Auto-generated method stub
Penguin QQ = new Penguin("小冰",10086);
//调用一个有参构造方法
QQ.eat();
QQ.sleep();
QQ.introduction();
}
}
运行结果:
小冰正在吃
小冰正在睡
大家好!我是10086号小冰.
芳小酱
芳小酱
fan***u.ling@foxmail.com
4年前 (2018-06-27)
nanjidifang
322***1300@qq.com
71
Java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象。
什么叫父类引用指向子类对象,且听我慢慢道来。
从 2 个名词开始说起:向上转型(upcasting) 、向下转型(downcasting)。
举个例子:有2个类,Father 是父类,Son 类继承自 Father。
Father f1 = new Son(); // 这就叫 upcasting (向上转型)
// 现在 f1 引用指向一个Son对象
Son s1 = (Son)f1; // 这就叫 downcasting (向下转型)
// 现在f1 还是指向 Son对象
第2个例子:
Father f2 = new Father();
Son s2 = (Son)f2; // 出错,子类引用不能指向父类对象
你或许会问,第1个例子中:Son s1 = (Son)f1; 为什么是正确的呢。
很简单因为 f1 指向一个子类对象,Father f1 = new Son(); 子类 s1 引用当然可以指向子类对象了。
而 f2 被传给了一个 Father 对象,Father f2 = new Father(); 子类 s1 引用不能指向父类对象。
总结:
1、父类引用指向子类对象,而子类引用不能指向父类对象。
2、把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转换吗,如:
Father f1 = new Son();
3、把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转换,如:
f1 就是一个指向子类对象的父类引用。把f1赋给子类引用 s1 即 Son s1 = (Son)f1;
其中 f1 前面的(Son)必须加上,进行强制转换。
更多内容请查看:Java 转型问题
nanjidifang
nanjidifang
322***1300@qq.com
4年前 (2018-08-01)
ToToXie
wdt***@163.com
参考地址
37
对理解继承来说,最重要的事情是,知道哪些东西被继承了,或者说,子类从父类那里得到了什么。答案是:所有的东西,所有的父类的成员,包括变量和方法,都成为了子类的成员,除了构造方法。构造方法是父类所独有的,因为它们的名字就是类的名字,所以父类的构造方法在子类中不存在。除此之外,子类继承得到了父类所有的成员。
但是得到不等于可以随便使用。每个成员有不同的访问属性,子类继承得到了父类所有的成员,但是不同的访问属性使得子类在使用这些成员时有所不同:有些父类的成员直接成为子类的对外的界面,有些则被深深地隐藏起来,即使子类自己也不能直接访问。下表列出了不同访问属性的父类成员在子类中的访问属性:
父类成员访问属性 在父类中的含义 在子类中的含义
public 对所有人开放 对所有人开放
protected 只有包内其它类、自己和子类可以访问 只有包内其它类、自己和子类可以访问
缺省 只有包内其它类可以访问
邹城企业网站设计 - 邹城高端网站定制 - 邹城品牌网站搭建 - 上往建站
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
public class Derived extends Base { public Derived() { // super(); //系统会自动隐式先调用父类的无参构造函数 super(); //必须是第一行,否则不能编译 System.out.println("Derived--默认构造方法"); } public Derived(int c) { // super(); //系统会自动隐式先调用父类的无参构造函数 super(); //必须是第一行,否则不能编译 System.out.println("Derived--有参构造方法" + c); } public Derived(int a, int b) { super(a); //如果子类构造方法第一行显式调用了父类构造方法,系统就不再调用无参的super()了。 System.out.println("Derived--有参构造方法--" + b); } public static void main(String[] args) { System.out.println("============子类无参============"); Derived no = new Derived(); System.out.println("============子类有参============"); Derived have = new Derived(33); System.out.println("============子类有参============"); Derived have2 = new Derived(33, 55); }}运行结果如下:
注意:如果父类没有无参构造函数,创建子类时,不能编译,除非在构造函数代码体中的第一行显式调用父类有参构造函数。
wyk123
101***6246@qq.com
芳小酱
fan***u.ling@foxmail.com
子类不能直接继承父类中的 private 属性和方法。
/**建立一个公共动物父类*/public class Animal { private String name; private int id; /*由于name和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 +"."); }}子类 Penguin 需要通过关键字 super 进行声明
public class Penguin extends Animal { public Penguin(String myname,int myid) { super(myname,myid); // 声明继承父类中的两个属性 }}具体通过有参构造函数进行继承。
public class PenguinQQ {