「java抽象类实例化代码」java抽象方法例子
本篇文章给大家谈谈java抽象类实例化代码,以及java抽象方法例子对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java请设计一个使用抽象类或接口的示例代码
- 2、Java中的抽象类为什么不能实例化
- 3、java程序,抽象类实现,求具体代码
- 4、JAVA抽象类 私有构造方法 如何实例化
- 5、java抽象类问题
- 6、抽象类怎么实例化?
java请设计一个使用抽象类或接口的示例代码
//接口
public interface BankCard {
public void norm();
}
//工商银行实现类
public class ICBCBankCard implements BankCard {
@Override
public void norm() {
// TODO 银行规范
}
public void saveMoney(int money){
//TODO 执行存钱动作
}
public void transfer(String account,int money){
//TODO 执行转账 动作
}
}
//交通银行实现类
public class CommunicationsBankCard implements BankCard {
@Override
public void norm() {
// TODO 银行规范
}
public void saveMoney(int money){
//TODO 执行存钱动作
}
public void transfer(String account,int money){
//TODO 执行转账 动作
}
}
上面的例子只是申明了通用的规范,如果想让实现类都能实现存钱和转账功能,可以在接口里面声明这两个方法,写一个通用的实现类,实现这些方法,然后具体的子类继承该通用类,这样可以直接继承父类方法,如果不同的银行具体实现不同,可以复写父类中的两个方法。
Java中的抽象类为什么不能实例化
首先抽象类不能实例化是一个java的语法规范。
抽象类中是可以包含抽线方法,不是必须。如果一个抽象类没有一个抽象方法,那么他和一个普通java类就没有任何区别了,也就是说,在这种情况下又没有abstract修饰都是一样的。定义了一个包含抽象方法的抽象类,其子类在继承自该抽象类的时候,子类就必须实现父类的所有抽象方法。之所以在java变成中存在这样一个语法规范,就是为了定义这种类型结构来解决生活中这样的一些实际问题。
比如举一个简单例子:
父亲(抽象类)是一个残疾人,他一生都想着要去见义勇(父类的抽象方法)为帮助他人,但是由于自生残疾行动不便,然后他就要求其所有的儿子(继承自抽象类的子类)能实现他的这个愿望(继承父类的抽象方法)。然而每一个儿子在实现父亲想见义勇为这个愿望的时候,每个儿子的做法是不一样的。大儿子喜欢这种方式的见义勇为(子类一有其自己的实现方法),二儿子喜欢其他的见义勇为的方式(子类二有其自己的实现方法)....因此java的抽象类就是用在这种场景中,解决这种问题的。
java程序,抽象类实现,求具体代码
package test;
/**
*
* @author JinnL
*父类抽象类
*/
public abstract class Car {
//转弯
abstract void turn();
//启动
abstract void start();
void what(){
System.out.println("this is "+this.getClass().getSimpleName());
}
public static void main(String[] args) {
/**
* 方法入口
*/
Car[] cars ={new Bicycle(),new Automobile(),new GasAutomobile(),new DieselAutomobile()};
for (Car car : cars) {
car.start();
}
}
}
class Bicycle extends Car{
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
void what(){
}
}
class Automobile extends Car{
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
}
class GasAutomobile extends Automobile{
//重写start turn
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
}
class DieselAutomobile extends Automobile{
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
void what(){
System.out.println("this is "+this.getClass().getSimpleName());
}
}
JAVA抽象类 私有构造方法 如何实例化
其实你的问题不算是问题。定义抽象类可以有抽象方法,也可以没有抽象方法,也可以全部都是抽象方法。定义为抽象类就是为了不让这个类创建对象、如果想创建对象。子类继承就可以了、 然后抽象类的引用指向子类的对象。这叫Java中的多态!!子类new对象的时候需要访问父类的构造方法。父类的构造方法定义为private。子类无法访问,自然创建不了对象、
java抽象类问题
你对抽象类的概念不是很熟哈,呵呵,抽象类不能实例化是正确的,但是不能不能代表其不能拥有一些类似set等成员方法或者属于类级别的static方法,但抽象类包含非static方法的时候,这个时候从类定义上是需要通过类实例调用的,抽象类不具有实例化功能,不能代表不能通过其子类获取父类的实例来实现对抽象类中非static方法的调用
上面的代码就是通过这种方法实现的,如果还不能理解,最好的方法就是查看下getXX的该方法的实现源码了,java是开源的你可以很容易获取一份源码的
抽象类怎么实例化?
抽象类就一定不可以实例化吗?
呵呵,不一定哦。。看下面的例子:
public abstract class YourClassName
{
public abstract Object someMethod(...);
}
在你要有的地方
YourClassName ycn = (YourClassName) java.lang.reflect.Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class[]{YourClassName.class},new java.lang.reflect.
InvocationHandler(){
public Object invoke(Object proxy,Method m,Object params[]) throws Exception{return null;}
});
只是这个实例没有任何用处,他所有的方法都直接返回
如果要使不是abstract的方法和原来的一样,
那么修改invoke函数,判断m是不是抽象的
不是就调用proxy中的方法
关于java抽象类实例化代码和java抽象方法例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。